GPX Parser для Java? [закрыто]

8
задан Mohamed Taher Alrefaie 10 March 2016 в 22:22
поделиться

3 ответа

После некоторого исследования действительно не существует 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();
....
6
ответ дан 5 December 2019 в 08:50
поделиться

Я не известно о любой библиотеке, специализирующейся на синтаксическом анализе файлов GPX, но, поскольку GPX - это XML, вы можете использовать свой предпочтительный синтаксический анализатор Java XML для его чтения.
Формат GPX задокументирован здесь (включает схему XSD): http://www.topografix.com/gpx.asp

0
ответ дан 5 December 2019 в 08:50
поделиться

Очень хорошо. Однако мне нужно было сделать:

    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 .

-Кен

3
ответ дан 5 December 2019 в 08:50
поделиться
Другие вопросы по тегам:

Похожие вопросы: