После некоторого исследования действительно не существует Java API / Lib для анализа файлов GPX, но я нашел хороший подход для его анализа с использованием JAXB
Используя этот учебник: http://www.oracle.com/technetwork/articles/javase/index-140168.html
Шаги:
1. Загрузите файл схемы GPX 1.0 и 1.1 (xsd)
2. Сгенерируйте из него файл Java с помощью подключаемого модуля Eclipse
3. Инициируйте JAXBContext с именем пакета сгенерированных файлов Java GPX (мой был "topografix.gpx.schema10")
4. Выполните синтаксический анализ файла GPX
JAXBContext jc = JAXBContext.newInstance("topografix.gpx.schema10");
Unmarshaller unmarshaller = jc.createUnmarshaller();
Gpx root = (Gpx) unmarshaller.unmarshal(new File("sample.gpx"));
List<Trk> tracks = root.getTrk();
....
Я не известно о любой библиотеке, специализирующейся на синтаксическом анализе файлов GPX, но, поскольку GPX - это XML, вы можете использовать свой предпочтительный синтаксический анализатор Java XML для его чтения.
Формат GPX задокументирован здесь (включает схему XSD):
http://www.topografix.com/gpx.asp
Очень хорошо. Однако мне нужно было сделать:
GpxType gpx = null;
try {
JAXBContext jc = JAXBContext.newInstance(PACKAGE_NAME);
Unmarshaller unmarshaller = jc.createUnmarshaller();
JAXBElement<GpxType> root = (JAXBElement<GpxType>)unmarshaller
.unmarshal(new File(TEST_FILE));
gpx = root.getValue();
} catch(JAXBException ex) {
// TODO
}
List<TrkType> tracks = gpx.getTrk();
for(TrkType track : tracks) {
System.out.println(track.getName());
}
Кстати, я использовал http://www.topografix.com/GPX/1/1 .
-Кен