Поддерживает ли Android API файлы KML?



Есть ли в Android способ загружать файлы KML из Google Earth в виджет карты?



В частности, я ищу, чтобы загрузить сохраненные фигуры, созданные в Google Earth поверх виджета карты как можно проще. Кто-нибудь пробовал это раньше?

332   2  

2 ответов:

Это старый вопрос, но этот ответ может оказаться полезным, если кто-то случайно наткнется на него.

Вы хотите добавить файл kml в mapfragment внутри приложения программно? Если да, то вы можете использовать этот метод.

 private void loadKml(File file) {

    try( InputStream inputstream = new FileInputStream(file) ) {

        // Set kmllayer to map
        // map is a GoogleMap, context is the Activity Context

        KmlLayer layer = new KmlLayer(map, inputstream, context);

        layer.addLayerToMap();



    // Handle these errors

    } catch (FileNotFoundException e) {

        e.printStackTrace();

    } catch (IOException e) {

        e.printStackTrace();

    } catch (XmlPullParserException e) {

        e.printStackTrace();
    }

}

Недостатком является то, что вы практически не контролируете, как отображается слой kml. Вы можете найти полную ссылку здесь: https://developers.google.com/maps/documentation/android-api/utility/kml

Вы также можете попробовать выполнить синтаксический анализ файл kml в POJO с помощью JAK и JAXB и нарисовать эти данные программно. Если вы можете заставить его работать, это относительно безболезненно. https://labs.micromata.de/projects/jak.html

Похоже, что вы можете загружать файлы KML на карту, но нет никакого программного доступа, как вы бы получили от libkml.

Comments

    Ничего не найдено.