ロケーションベースのアプリケーションを開発しています。指定されたマップを kml ファイルにエクスポートし、kml ファイルを Android Google マップにインポートしたいと考えています。Android で kml を実装する方法はありますか?
2 に答える
KML の実装については、これを調べることができます - kml ファイルを使用してマップにパスを描画する方法は?
KML ファイルの基本構造
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Placemark>
<name>My Simple Placemark</name>
<description>Your Description goes here</description>
<Point>
<coordinates> longitude, latitude, and optional altitude</coordinates>
</Point>
</Placemark>
</kml>
Kml チュートリアルについてはこちらを、KML パスについてはこちらをご覧ください
KML ファイルを Android フォンにロードするには、次のコードを含める必要があります。
final Intent myIntent =
new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("http://myurl.com/kmlcode/path/KML_Sa
mples.kml"));
startActivity(myIntent);
また
final Intent myIntent =
new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("file:///myurl.com/kmlcode/path/KML_Sa
mples.kml"));
startActivity(myIntent);
上記のコードは Google マップ アプリを開き、指定された URL またはファイルから kml ファイルを要求します。
Android フォンに Google API を実装するには、Google API ライブラリを追加し、ビルド ターゲットを Google API として設定する必要があります。また、以下のように AndroidManifest.xml ファイルにアクセス許可を設定する必要があります。
<manifest
xmlns:android="http://schemas.android.com/apk/res/
android"
package="com.example.package.name">
...
<application android:name="MyApplication" >
<uses-library
android:name="com.google.android.maps" />
...
</application>
...
<uses-permission
android:name="android.permission.INTERNET" />
</manifest>
MapView コントロールを追加するには、レイアウト ファイルに次のようにコーディングする必要があります。
<?xml version="1.0" encoding="utf-8"?>
<com.google.android.maps.MapView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mapview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:clickable="true"
android:apiKey="Your Maps API Key goes here"
/>
これがあなたを助けることを願っています。
申し訳ありませんが、現在、特定の Android マップから KML をエクスポートする方法はありません。Android Google Map API V2 で kml を表示すると、それを復元する方法はありません。
エクスポート マップを更新するときに kml を更新するメソッドを設計するか、マップを更新するときにすべての kml マーカーと kml ポイントなどを追跡するクラスを更新して、後で kml をシリアル化できるようにする必要があります。
インポート そこにはいくつかの例がありますが、ほとんどの場合、独自の kml 表示を展開する必要があります。誰かが寛大な人かもしれません。