最近有个需求,java读取kml,想到的方案大概有两个。一、按一般xml解析,二、用GIS相关的java库解析。由于KML格式具有一定的复杂性,懒人放弃按xml解析,转而考虑用java的GIS库,首先想到的是Geotools,但是处理过程中发现真不好用……
转而去找其他的kml库,找到了这个 JAK – Java API for KML ,显然这个德国的家伙也对java解析kml这件事的现状很不爽。摘一段代码分享给大家,希望有帮助
Kml unmarshal = Kml.unmarshal(aFile);
Document document = (Document) unmarshal.getFeature();
Folder folder = (Folder) document.getFeature().get(0);
int folderSize = folder.getFeature().size();
// loop over all countries / Placemarks
for (int i = 0; i
Placemark placemark = (Placemark) folder.getFeature().get(i);
Polygon polygon = (Polygon) placemark.getGeometry();
Boundary outerBoundaryIs = polygon.getOuterBoundaryIs();
LinearRing linearRing = outerBoundaryIs.getLinearRing();
List coordinates = linearRing.getCoordinates();
for (Coordinate c : coordinates) {
}
}
附上一个测试kml文件吧
http://nutz.cn/61