フィードバックを送信
Maps SDK for Android ユーティリティ ライブラリ
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
マップに追加する高度な機能をお探しですか。Maps SDK for Android ユーティリティ ライブラリ は、幅広いアプリケーションで役立つクラスのオープンソース ライブラリです。GitHub リポジトリには、ユーティリティ クラスと、各クラスの使用法を示すデモ アプリが含まれています。
この動画では、Chris Broadfoot が、ポリラインのデコード、球面幾何学、バブルアイコンを中心に、ユーティリティ ライブラリについて説明します。
クイック セットアップ
Maps SDK for Android ユーティリティ ライブラリをインストールするには、設定ガイド に従ってください。
ユーティリティ
マップに GeoJSON をインポートする
対象物を GeoJSON 形式で保存し、このユーティリティを使用して、それらをレイヤとしてマップ上にレンダリングすることができます。addLayer()
を呼び出して GeoJSON データをマップに追加します。
addFeature()
を呼び出し、GeoJsonFeature
オブジェクトを渡して、対象物を個別に追加することもできます。
詳しくは、Google マップ Android GeoJSON ユーティリティ のドキュメントをご覧ください。
マップに KML をインポートする
このユーティリティを使用すると、KML オブジェクトを地理的図形に変換して、マップ上にレイヤとしてレンダリングできます。addLayerToMap()
を呼び出して、マップにレイヤを追加します。任意の Placemark、GroundOverlay、Document、または Folder で getProperties()
を呼び出して、KML オブジェクトのプロパティにアクセスできます。
詳しくは、Google マップ Android KML ユーティリティ のドキュメントをご覧ください。
マップにヒートマップを追加する
ヒートマップを使うと、マップ上のデータポイントの分布と相対密度を閲覧者にわかりやすく示すことができます。各場所にマーカーを配置するのではなく、ヒートマップでは色と図形を使用してデータの分布を表します。HeatmapTileProvider
を作成し、マップ上のスポットを表す LatLng
オブジェクトのコレクションをそれに渡します。次に、新しい TileOverlay
を作成し、これにヒートマップ タイル プロバイダを渡して、マップにタイル オーバーレイを追加します。
詳しくは、Google マップ Android ヒートマップ ユーティリティ のドキュメントをご覧ください。
バブルアイコンでマーカーをカスタマイズする
IconGenerator
を追加して、マーカーに情報のスニペットを表示します。このユーティリティを使用すると、マーカー アイコンを情報ウィンドウのように見せ、マーカー自体にテキストやその他のコンテンツを含めることができます。これには、複数のマーカーを同時に開いておくことができるというメリットがあります。情報ウィンドウの場合は、一度に 1 つしか開くことができません。マーカーのスタイルを設定したり、マーカーやコンテンツの向きを変更したり、マーカーの背景画像や 9-patch を変更したりすることもできます。
マーカー クラスタを管理する
ClusterManager
を使うと、さまざまなズームレベルで複数のマーカーを管理できます。つまり、マップを見づらくすることなく、マップ上に多数のマーカーを配置できるということです。ユーザーが高いズームレベルでマップを表示すると、個別のマーカーがマップ上に表示されます。ユーザーが低いズームレベルにズームアウトすると、マーカーがまとまってクラスタになり、マップが見やすくなります。
詳しくは、Google マップ Android マーカー クラスタリング ユーティリティ のドキュメントをご覧ください。
同じマップに複数のレイヤを追加する
GeoJSON、KML、クラスタの対象物に加えて、独自のマーカー、ポリライン、ポリゴンをすべて同じマップに表示できます。これらのレイヤは、各レイヤにクリック リスナーを追加することでインタラクティブにすることもできます。
MarkerManager
、GroundOverlayManager
、PolygonManager
、PolylineManager
のクラスを単純にインスタンス化し、設定時に GeoJsonLayer
、KmlLayer
、ClusterManager
のコンストラクタに渡します。それから、上記の Manager
クラスを直接使って、独自のマーカー、ポリライン、ポリゴンをマップに追加することができます。
詳しくは、Google マップ Android マルチレイヤ デモのドキュメント をご覧ください。
ポリラインをエンコードおよびデコードする
PolyUtil
は、エンコードされたポリラインやポリゴンを緯度 / 経度の座標に変換したり、その逆の変換を行ったりする場合に役立ちます。
Google マップでは、ポリラインまたはポリゴンを定義する緯度と経度の座標は、エンコードされた文字列として保存されます。詳しくは、ポリラインのエンコード に関する説明をご覧ください。Directions API などの Google API からのレスポンスで、このエンコードされた文字列を受け取ることがあります。
Maps SDK for Android ユーティリティ ライブラリの PolyUtil
を使って、一連の緯度と経度の座標(「LatLngs」)をエンコードされたパス文字列にエンコードし、エンコードされたパス文字列を一連の LatLngs にデコードできます。これにより、Google Maps API ウェブサービスとの相互運用性が保証されます。
球面幾何学を使用して、距離、面積、方向を計算する
SphericalUtil
の球面幾何学ユーティリティを使用すると、緯度と経度に基づいて距離、面積、方向を計算できます。このユーティリティで使用できるメソッドのいくつかを次に示します。
computeDistanceBetween()
- 2 つの緯度と経度の座標間の距離をメートル単位で返します。
computeHeading()
- 2 つの緯度と経度の座標間の方向指定を度数で返します。
computeArea()
– 地球上の閉じられたパスの面積を平方メートル単位で返します。
interpolate()
- 特定の 2 地点間の距離の比率で指定された、その 2 地点間にある地点の緯度と経度の座標を返します。たとえば、これを使用して 2 点間のマーカーにアニメーションを付けられます。
ユーティリティのすべてのメソッドのリストについては、リファレンス ドキュメント をご覧ください。
フィードバックを送信
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンス により使用許諾されます。コードサンプルは Apache 2.0 ライセンス により使用許諾されます。詳しくは、Google Developers サイトのポリシー をご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2022-08-04 UTC。
[{
"type": "thumb-down",
"id": "missingTheInformationINeed",
"label":"必要な情報がない"
},{
"type": "thumb-down",
"id": "tooComplicatedTooManySteps",
"label":"複雑すぎる / 手順が多すぎる"
},{
"type": "thumb-down",
"id": "outOfDate",
"label":"最新ではない"
},{
"type": "thumb-down",
"id": "translationIssue",
"label":"翻訳に関する問題"
},{
"type": "thumb-down",
"id": "samplesCodeIssue",
"label":"サンプル / コードに問題がある"
},{
"type": "thumb-down",
"id": "otherDown",
"label":"その他"
}]
[{
"type": "thumb-up",
"id": "easyToUnderstand",
"label":"わかりやすい"
},{
"type": "thumb-up",
"id": "solvedMyProblem",
"label":"問題の解決に役立った"
},{
"type": "thumb-up",
"id": "otherUp",
"label":"その他"
}]
ご意見をお聞かせください
{"lastModified": "\u6700\u7d42\u66f4\u65b0\u65e5 2022-08-04 UTC\u3002"}
[[["わかりやすい","easyToUnderstand","thumb-up"],["問題の解決に役立った","solvedMyProblem","thumb-up"],["その他","otherUp","thumb-up"]],[["必要な情報がない","missingTheInformationINeed","thumb-down"],["複雑すぎる / 手順が多すぎる","tooComplicatedTooManySteps","thumb-down"],["最新ではない","outOfDate","thumb-down"],["翻訳に関する問題","translationIssue","thumb-down"],["サンプル / コードに問題がある","samplesCodeIssue","thumb-down"],["その他","otherDown","thumb-down"]],["最終更新日 2022-08-04 UTC。"]]