JAK (Java API для KML) - это простой и мощный Java API для анализа и / или создания файлов KML с нуля.
https://github.com/micromata/javaapiforkml
Вот фрагмент кода Java для извлечения координат из файла KML. В данном случае это метка и геометрия многоугольника. Если в файле KML есть несколько меток, вы можете выполнить итерацию по всем меткам.
JAXBContext jc = JAXBContext.newInstance(Kml.class);
// create KML reader to parse arbitrary KML into Java Object structure
Unmarshaller u = jc.createUnmarshaller();
Kml kml = (Kml) u.unmarshal(new File("test.kml"));
Placemark placemark = (Placemark) kml.getFeature();
Polygon geom = (Polygon) placemark.getGeometry();
LinearRing linearRing = geom.getOuterBoundaryIs().getLinearRing();
List<Coordinate> coordinates = linearRing.getCoordinates();
for (Coordinate coordinate : coordinates) {
System.out.println(coordinate.getLongitude());
System.out.println(coordinate.getLatitude());
System.out.println(coordinate.getAltitude());
}
Если первая функция в KML - это папка, вы можете привести папку к объекту, а затем выполнить итерацию по объектам.
Folder doc = (Folder) kml.getFeature();
List<Feature> features = doc.getFeature();
for(Feature f : features) {
...
}