Hace los archivos KML de apoyo de la API de Android?
-
20-09-2019 - |
Pregunta
¿Hay una manera de Android para cargar archivos KML de Google Earth en un widget de mapa?
En concreto Busco para cargar formas guardados creados en Google Earth overtop un widget de mapa tan fácilmente como sea posible. A nadie le ha intentado esto antes?
Solución
Es una vieja pregunta, pero esta respuesta podría ser de alguna utilidad si alguien pasa a tropezar con él.
¿Quiere añadir el archivo KML en un MapFragment dentro de una aplicación mediante programación? Si es así, puede utilizar este 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();
}
}
La desventaja es que tiene poco o ningún control sobre cómo se visualiza la capa KML. Se puede encontrar una referencia completa aquí: https://developers.google.com / maps / documentation / android-api / utilidad / kml
También puede tratar de analizar el archivo KML a un POJO usando JAK y JAXB y extraer los datos mediante programación. Si se puede conseguir que funcione es relativamente indolora. https://labs.micromata.de/projects/jak.html
Otros consejos
Parece que se puede cargar archivos KML en un mapa, pero no hay acceso mediante programación al igual que se podrían obtener de libkml.