Pergunta

Existe uma maneira no Android para carregar arquivos KML do Google Earth em um widget de mapa?

Especificamente, pretendo carregar formas salvas criadas no Google Earth Over uma widget de mapa o mais facilmente possível. Alguém já tentou isso antes?

Foi útil?

Solução

É uma pergunta antiga, mas essa resposta pode ser de alguma utilidade se alguém tropeçar nela.

Deseja adicionar o arquivo KML em um MapFragment dentro de um aplicativo programaticamente? Nesse caso, você pode usar esse método.

 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();
    }

}

A desvantagem é que você tem pouco ou nenhum controle sobre como a camada KML é exibida. Você pode encontrar uma referência completa aqui: https://developers.google.com/maps/documentation/android-api/utility/kml

Você também pode tentar analisar o arquivo KML em um pojo usando o JAK e o JAXB e desenhar esses dados programaticamente. Se você conseguir que funcione, é relativamente indolor. https://labs.micromata.de/projects/jak.html

Outras dicas

Parece que você pode carregar arquivos KML em um mapa, mas não há acesso programático como você obteria da libkml.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top