Поддерживает ли Android API файлы KML? - PullRequest
5 голосов
/ 15 марта 2010

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

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

Ответы [ 2 ]

6 голосов
/ 07 декабря 2015

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

Вы хотите программно добавить файл 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

0 голосов
/ 29 июня 2010

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

...