スポット(地図上の場所)は、対応するアイコンとともに基本地図にデフォルトで表示されます。公園、学校、政府機関などもスポットに該当します。
また、地図タイプが normal
の場合は、ビジネス スポットがデフォルトで地図に表示されます。ビジネス スポットは、店舗、レストラン、ホテルなどを表します。インドアマップ(構内図)上のビジネス スポットは、ライトモードの地図でのみ表示されます。
スポットは、Places SDK for Android で定義されるプレイス ID に対応しています。たとえば、遊園地はスポットですが、噴水などの物体は、通常は(国民的または歴史的に重要と認められていない限り)スポットではありません。
スポットに対するクリック イベントをリッスンする
ユーザーによるスポットへのタップに応答するには、次のコードサンプルに示すように OnPoiClickListener
を使用します。
Kotlin
internal class OnPoiClickDemoActivity : AppCompatActivity(), OnMapReadyCallback, OnPoiClickListener { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.poi_click_demo) val mapFragment = supportFragmentManager.findFragmentById(R.id.map) as SupportMapFragment mapFragment.getMapAsync(this) } override fun onMapReady(map: GoogleMap) { map.setOnPoiClickListener(this) } override fun onPoiClick(poi: PointOfInterest) { Toast.makeText(this, """Clicked: ${poi.name} Place ID:${poi.placeId} Latitude:${poi.latLng.latitude} Longitude:${poi.latLng.longitude}""", Toast.LENGTH_SHORT ).show() } }
Java
class OnPoiClickDemoActivity extends AppCompatActivity implements OnMapReadyCallback, GoogleMap.OnPoiClickListener { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.poi_click_demo); SupportMapFragment mapFragment; mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map); mapFragment.getMapAsync(this); } @Override public void onMapReady(GoogleMap map) { map.setOnPoiClickListener(this); } @Override public void onPoiClick(PointOfInterest poi) { Toast.makeText(this, "Clicked: " + poi.name + "\nPlace ID:" + poi.placeId + "\nLatitude:" + poi.latLng.latitude + " Longitude:" + poi.latLng.longitude, Toast.LENGTH_SHORT).show(); } }
スポットは地図にデフォルトで表示されますが、クリックを処理する UI はデフォルトでは存在しません。つまり、ユーザーがスポットをタップしても、API によって情報ウィンドウなどのユーザー インターフェースが自動的に表示されることはありません。
上記のサンプルに示すように、GoogleMap.setOnPoiClickListener(OnPoiClickListener)
を呼び出して、地図に OnPoiClickListener
を設定します。
スポットがクリック(タップ)されると、アプリはそのスポット(地図上の場所)を示す OnPoiClick(PointOfInterest)
イベントを受け取ります。PointOfInterest
には、スポットの緯度と経度の座標、プレイス ID、名前が含まれます。
地図にスポットが表示されないようにする
スポット(地図上の場所)を非表示にするには、すべてのスポットまたは該当のカテゴリのスポットにカスタム スタイルを適用します。
次の JSON スタイル宣言を使用すると、地図上のすべてのビジネス スポットを非表示にすることができます。
[
{
"featureType": "poi.business",
"stylers": [
{ "visibility": "off" }
]
}
]
別の例として、次の JSON を使用してすべてのカテゴリのスポットの表示を簡素化することもできます。
[
{
"featureType": "poi",
"stylers": [
{ "visibility": "simplified" }
]
}
]
Java コードとその他の詳細については、地図上の対象物をスタイルで非表示にするためのガイドをご覧ください。