以上で完了です。

開発を始めるには、デベロッパー ドキュメント をご覧下さい。

Google Maps Android API をアクティベートする

まず初めに Google Developers Console で次の作業を行います。

  1. プロジェクトを作成または選択する
  2. Google Maps Android API をアクティベートする
  3. 適切なキーを作成する
続ける

Google マップ KML インポート ユーティリティ

  1. はじめに
  2. KML レイヤーを追加する
  3. KML レイヤーを消去する
  4. KML コンテナにアクセスする
  5. KML 場所マーカーと KML 地面オーバーレイにアクセスする
  6. KML プロパティにアクセスする
  7. KML でサポートされている機能

はじめに

KMLXML データ形式の拡張で、マップ上の地理的データを表します。このユーティリティを使用すると、KML オブジェクトを地理的図形に変換して、マップ上にレイヤーとしてレンダリングできます。KML データをマップに追加したり、KML データをマップから削除したりするには、それぞれ addLayerToMap()removeLayerFromMap() を呼び出します。KML オブジェクトのプロパティにアクセスするには、任意の Placemark、GroundOverlay、Document、または Folder で getProperties() を呼び出します。

マップに KML レイヤーを追加する

マップにデータレイヤーを追加するには、まず KmlLayer クラスのインスタンスを作成します。KmlLayer をインスタンス化するには、2 つの方法があります。

ローカル リソースから KML データセットをインポートしてレンダリングする場合は、次のものが必要です。

  • レイヤーがレンダリングされる GoogleMap オブジェクト。
  • KML データを含むローカル リソース ファイル。
  • Context オブジェクト。これはローカル リソース ファイルを開くために必要です。
KmlLayer layer = new KmlLayer(getMap(), R.raw.kmlFile, getApplicationContext());

ローカル ストリームから KML データセットをインポートしてレンダリングする場合は、次のものが必要です。

  • レイヤーがレンダリングされる GoogleMap オブジェクト。
  • KML データが含まれる InputStream
  • Context オブジェクト。これはローカル リソースを開くために必要です。
KmlLayer layer = new KmlLayer(getMap(), kmlInputStream, getApplicationContext());

KmlLayer を作成したら、addLayerToMap() を呼び出して、インポートしたデータをマップに追加します。

layer.addLayerToMap();

KML レイヤーを消去する

次の KmlLayer を作成したと仮定します。

KmlLayer layer = new KmlLayer(getMap(), kmlInputStream, getApplicationContext());
 

マップからレイヤーを削除するには、removeLayerFromMap() を呼び出します。

layer.removeLayerFromMap();

KML コンテナにアクセスする

レイヤーに追加したコンテナにアクセスするには、作成したレイヤーで getContainers() を呼び出します。いずれかのコンテナ内にコンテナがネストされているかどうかをチェックするには、hasContainers() を呼び出します。これらのネストされたコンテナにアクセスするには、レイヤーで行うのと同様に、getContainers() を呼び出します。

KmlLayer または KmlContainer にネストされていないコンテナにアクセスするには、次のようにします。

for (KmlContainer containers : layer.getContainers())
  // Do something to container
}

KmlLayer または KmlContainer にネストされているコンテナにアクセスするには、次のようにします。

Iterable containers = layer.getContainers();
  public void accessContainers(containers) {
    for (KmlContainer container : containers ) {
    // Do something to container
    if (container.hasContainers()) {
      accessContainers(container.getContainers());
    }
  }
}

KML 場所マーカーと KML 地面オーバーレイにアクセスする

レイヤーに追加されている場所マーカーや地面オーバーレイにアクセスするには、レイヤーまたはコンテナで getPlacemarks() または getGroundOverlays() を呼び出します。これらを呼び出すと、それぞれ KmlPlacemarks または KmlGroundOverlays の iterable が返されます。

たとえば、レイヤーから KmlPlacemark オブジェクトにアクセスするには次のようにします。

for (KmlPlacemark placemark : layer.getPlacemarks()) {
  // Do something to Placemark
}

KML プロパティにアクセスする

コンテナまたは場所マーカーのプロパティにアクセスするには、getProperty() を呼び出して、プロパティキーを渡します。hasProperty() を呼び出して、そのプロパティが存在するかどうかをチェックすることもできます。このサンプルは、プロパティ値「name」が存在する場合に、それをコンテナから取得する方法を示しています。

for (KmlContainer container : layer.getContainers()) {
  if (container.hasProperty("name")) {
    System.out.println(container.getProperty("name")):
  }
}

デモアプリを見る

KML ファイルをインポートし、それを使用してレイヤーを作成する例は、ユーティリティ ライブラリに付属のデモアプリにある KmlDemoActivity をご覧ください。デモアプリを実行する方法については、セットアップ ガイドをご覧ください。

KML でサポートされている機能

KML 要素 サポートされているか? コメント
<address> 一部 プロパティ値として保存されます。
<AddressDetails> いいえ
<Alias> いいえ
<altitude> いいえ
<altitudeMode> いいえ
<atom:author> いいえ
<atom:link> いいえ
<atom:name> いいえ
<BalloonStyle> 一部 <text> のみがサポートされます。
<begin> 該当せず <TimeSpan> はサポートされません。
<bgColor> いいえ
<bottomFov> 該当せず <PhotoOverlay> はサポートされません。
<Camera> いいえ
<Change> 一部 スタイルの変更のみがサポートされます。
<color> 一部 #AABBGGRR と #BBGGRR を含みます。<ScreenOverlay> と <GroundOverlay> ではサポートされません。
<colorMode> はい
<cookie> いいえ <NetworkLinkControl> はサポートされません。
<coordinates> はい
<Create> いいえ
<Data> いいえ
<Delete> いいえ
<description> はい プレーン テキストのみ。HTML コンテンツはサポートされません。
<displayMode> いいえ
<displayName> いいえ
<Document> はい
<drawOrder> はい
<east> はい
<end> 該当せず <TimeSpan> はサポートされません。
<expires> いいえ <NetworkLinkControl> はサポートされません。
<ExtendedData> 一部 型なしの <Data> のみ。<SimpleData> と <Schema>、form$[dataName] のエンティティの置換はサポートされません。
<extrude> いいえ
<fill> はい
<flyToView> いいえ <NetworkLinkControl> はサポートされません。
<Folder> はい
<gridOrigin> 該当せず <PhotoOverlay> はサポートされません。
<GroundOverlay> はい
<heading> はい
<hotSpot> はい
<href> はい
<httpQuery> いいえ
<Icon> はい
<IconStyle> はい
<ImagePyramid> 該当せず <PhotoOverlay> はサポートされません。
<innerBoundaryIs> はい 暗黙的に <LinearRing> を含みます。
<ItemIcon> 該当せず <ListStyle> はサポートされません。
<key> はい
<kml> はい
<LabelStyle> いいえ
<latitude> はい
<LatLonAltBox> いいえ
<LatLonBox> はい
<leftFov> 該当せず <PhotoOverlay> はサポートされません。
<LinearRing> はい
<LineString> はい
<LineStyle> はい
<Link> いいえ
<linkDescription> 該当せず <NetworkLinkControl> はサポートされません。
<linkName> 該当せず <NetworkLinkControl> はサポートされません。
<linkSnippet> 該当せず <NetworkLinkControl> はサポートされません。
<listItemType> 該当せず <ListStyle> はサポートされません。
<ListStyle> いいえ
<Location> 該当せず <Model> はサポートされません。
<Lod> はい
<longitude> はい
<LookAt> いいえ
<maxAltitude> いいえ
<maxFadeExtent> いいえ
<maxHeight> 該当せず <PhotoOverlay> はサポートされません。
<maxLodPixels> いいえ
<maxSessionLength> いいえ
<maxWidth> 該当せず <PhotoOverlay> はサポートされません。
<message> いいえ
<minAltitude> いいえ
<minFadeExtent> いいえ
<minLodPixels> いいえ
<minRefreshPeriod> いいえ <NetworkLink>
<Model> いいえ
<MultiGeometry> はい
<name> はい
<near> 該当せず <PhotoOverlay> はサポートされません。
<NetworkLink> いいえ
<NetworkLinkControl> いいえ
<north> はい
<open> はい プロパティ値として保存されます。
<Orientation> 該当せず <Model> はサポートされません。
<outerBoundaryIs> はい 暗黙的に <LinearRing> を含みます。
<outline> はい
<overlayXY> いいえ
<Pair> はい
<phoneNumber> 一部 プロパティ値として保存されます。
<PhotoOverlay> いいえ
<Placemark> はい
<Point> はい
<Polygon> はい
<PolyStyle> はい
<range> はい
<refreshInterval> いいえ
<refreshMode> いいえ
<refreshVisibility> いいえ
<Region> はい
<ResourceMap> 該当せず <Model> はサポートされません。
<rightFov> 該当せず <PhotoOverlay> はサポートされません。
<roll> 該当せず <Camera> と <Model> はサポートされません。
<rotation> はい
<rotationXY> no
<Scale> 該当せず <Model> はサポートされません。
<scale> はい
<Schema> no
<SchemaData> no
<ScreenOverlay> no
<screenXY> 該当せず <ScreenOverlay> はサポートされません。
<shape> 該当せず <PhotoOverlay> はサポートされません。
<SimpleData> 該当せず <SchemaData> はサポートされません。
<SimpleField> 該当せず <Schema> はサポートされません。
<size> はい
<Snippet> no
<south> はい
<state> 該当せず <ListStyle> はサポートされません。
<Style> はい
<StyleMap> 一部 ハイライト スタイルは提供されません。インライン StyleMap はサポートされません。
<styleUrl> はい
<targetHref> no <Alias> はサポートされません。
<tessellate> no
<text> はい
<textColor> no
<tileSize> 該当せず <PhotoOverlay> はサポートされません。
<tilt> no
<TimeSpan> no
<TimeStamp> no
<topFov> 該当せず <PhotoOverlay> はサポートされません。
<Update> 該当せず <NetworkLinkControl> はサポートされません。
<value> はい
<viewBoundScale> no
<viewFormat> no
<viewRefreshMode> no
<viewRefreshTime> no
<ViewVolume> 該当せず <PhotoOverlay> はサポートされません。
<visibility> はい
<west> はい
<when> 該当せず <TimeStamp> はサポートされません。
<width> はい

フィードバックを送信...

ご不明な点がありましたら、Google のサポートページをご覧ください。