web-dev-qa-db-fra.com

Ouvrez le fichier KML local dans Google Maps sur Android

J'ai chargé un fichier KML sur un appareil Android. Quel est le mécanisme le plus simple pour charger une superposition de ce fichier KML dans Google Maps? Je ne souhaite pas télécharger le fichier KML sur le Web, mais ouvrez-le plutôt localement.

20
ahsteele

Pour charger kml dans Google Maps sur Android sans écrire d'application , vous pouvez créer un petit fichier html quelque part avec un lien géo-uri vers le fichier kml, puis cliquez sur ce lien dans un navigateur Web Android.

Par exemple: supposez que votre fichier kml se trouve dans / sdcard/overlay.kml alors vous écrivez un lien géo-uri comme ceci:

<html>
<head><title>Example KML link page using a geo-uri</title></head>
<body>
  <a href="geo:0,0?q=file:///sdcard/overlay.kml">overlay.kml</a>
</body>
</html>

Cliquez sur le lien pour lancer Maps, puis Maps tentera de charger et votre kml.

(Évidemment, si votre fichier kml est sur un serveur Web, la partie file: // peut être remplacée par http: // servername)

Soyez averti cependant que la version Android de Maps ne semble pas gérer la même version/plage d'éléments kml que la version de bureau (ou le bureau Google Earth).

14
gb96

Je ne peux pas parler des anciennes versions de Android, mais sur Nexus 4 avec Android 4.2.2 c'est très simple:

  • Transférez le fichier KML sur votre Android et stockez-le sur votre carte SD par n'importe quel moyen (USB, eMail, application Paw , ...)
  • Utilisez une application de gestion de fichiers (par exemple Solid Explorer , Astro , ...) pour localiser le fichier dans le système de fichiers et cliquez dessus.
  • Google Earth apparaîtra et le fichier KML sera affiché au-dessus de l'image satellite de la Terre.

Dans Earth, vous pouvez également appuyer sur n'importe quel objet KML pour afficher les informations associées (le cas échéant, elles sont stockées dans le fichier KML).

2
Jpsy
File KML = new File("/sdcard/doc.kml");
Intent i = getPackageManager().getLaunchIntentForPackage("com.google.earth");
i.setDataAndType(Uri.fromFile(KML), "xml");
startActivity(i);

source: http://enladodelbien.blogspot.com/2015/06/kmlkmz-to-google-earth.html

1
Mike Brian Olivera

En supposant que vous êtes d'accord pour afficher votre KML sur OpenStreetMap au lieu de Google Maps, vous pouvez également utiliser osmdroid + OSMBonusPack ( https://github.com/MKergall/osmbonuspack ).

Selon ce que vous voulez faire:

  • Vous pouvez simplement utiliser l'application de démonstration "OSMNavigator" pour charger et afficher votre fichier KML sur la carte (KML peut être local ou à partir d'une URL).

  • Ou vous pouvez utiliser la bibliothèque OSMBonusPack dans votre application pour afficher votre contenu KML comme vous le souhaitez.

1
MKer