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

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

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


person benstpierre    schedule 15.03.2010    source источник


Ответы (2)


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

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

person Willem Leuverink    schedule 07.12.2015

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

person benstpierre    schedule 29.06.2010
comment
Не могли бы вы немного расширить свой ответ? Фрагмент кода? - person DannyThunder; 08.12.2014