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

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

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

Ответ 1

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

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

 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

Ответ 2

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