web-dev-qa-db-ja.com

AndroidでGoogleマップのローカルKMLファイルを開きます

KMLファイルをAndroidデバイスにロードしました。そのKMLファイルのオーバーレイをGoogleマップにロードする最も簡単なメカニズムは何ですか?KMLファイルをWebにアップロードしたくないのですが、むしろローカルで開きます。

20
ahsteele

アプリを記述せずにAndroid)でGoogleマップにkmlを読み込むには、 kmlファイルへのgeo-uriリンクをクリックし、任意のAndroid Webブラウザーでそのリンクをクリックします。

たとえば、kmlファイルが/ sdcard/overlay.kmlにあるとし、次のようなgeo-uriリンクを記述します。

<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>

リンクをクリックするとマップが起動し、マップはロードとkmlをロードしようとします。

(明らかに、kmlファイルがWebサーバー上にある場合、file://部分はhttp:// servernameに置き換えることができます)

ただし、MapsのAndroidバージョンは、デスクトップバージョン(またはデスクトップGoogle Earth)と同じバージョン/範囲のkml要素を処理しないようです。

14
gb96

古いAndroidバージョンについては言えませんが、Nexus 4ではAndroid 4.2.2は非常に簡単です。

  • KMLファイルをAndroidデバイスに転送し、何らかの手段でUSBカードに保存します(USB、電子メール、 Pawアプリ 、...)
  • ファイルマネージャーアプリ(たとえば Solid ExplorerAstro 、...)を使用して、ファイルシステム内のファイルを見つけてクリックします。
  • Google Earthがポップアップ表示され、KMLファイルがEarth衛星画像の上に表示されます。

Earthでは、KMLオブジェクトをタップして関連情報を表示することもできます(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);

ソース: http://enladodelbien.blogspot.com/2015/06/kmlkmz-to-google-earth.html

1

GoogleマップではなくOpenStreetMapでKMLを表示してもよいと仮定すると、osmdroid + OSMBonusPack( https://github.com/MKergall/osmbonuspack )を使用することもできます。

何をしたいかに応じて:

  • デモアプリケーション「OSMNavigator」を使用して、マップにKMLファイルを読み込んで表示できます(KMLはローカルまたはURLから取得できます)。

  • または、アプリケーションでOSMBonusPackライブラリを使用して、必要に応じてKMLコンテンツを表示できます。

1
MKer