Est-ce que le support de l'API Android fichiers KML?
-
20-09-2019 - |
Question
Est-il possible dans Android pour charger des fichiers KML de Google Earth dans un widget carte?
Plus précisément, je suis à la recherche charger des formes enregistrées créées dans Google Earth overtop un widget carte aussi facilement que possible. Quelqu'un at-il déjà essayé auparavant?
La solution
Il est une vieille question, mais cette réponse pourrait être utile si quelqu'un arrive à tomber par hasard sur elle.
Voulez-vous dire ajouter le fichier kml sur un mapfragment dans une application par programme? Si oui, vous pouvez utiliser cette méthode.
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();
}
}
L'inconvénient est que vous avez peu à aucun contrôle quant à la façon dont la couche kml est affichée. Vous pouvez trouver une référence complète ici: https://developers.google.com / cartes / documentation / android-api / utilitaire / kml
Vous pouvez également essayer d'analyser le fichier kml à un POJO en utilisant JAK et JAXB et d'en tirer les données d'un programme. Si vous pouvez le faire fonctionner, il est relativement indolore. https://labs.micromata.de/projects/jak.html
Autres conseils
Il semble que vous pouvez charger des fichiers KML sur une carte, mais il n'y a pas d'accès programmatique comme vous obtiendriez de libkml.