スポット(地図上の場所)は、対応するアイコンとともに基本地図にデフォルトで表示されます。公園、学校、政府機関などもスポットに該当します。
また、地図タイプが normal
の場合は、ビジネス スポットがデフォルトで地図に表示されます。ビジネス スポットは、店舗、レストラン、ホテルなどを表します。インドアマップ(構内図)上のビジネス スポットは、ライトモードの地図でのみ表示されます。
スポットは、Places SDK for Android で定義される Place ID に対応しています。たとえば、遊園地はスポットですが、噴水などの物体は、通常は(国民的または歴史的に重要と認められていない限り)スポットではありません。
スポットに対するクリック イベントをリッスンする
ユーザーによるスポットへのタップに応答するには、OnPoiClickListener
を次のコードサンプルに示すように使用します。
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(); } }
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() } }
スポットは地図にデフォルトで表示されますが、クリック対応の UI がデフォルトで表示されることはありません。つまり API では、ユーザーがスポットをタップしたとき、情報ウィンドウなどのユーザー インターフェースは自動的には表示されません。
上記のサンプルに示すように、GoogleMap.setOnPoiClickListener(OnPoiClickListener)
を呼び出して、地図に OnPoiClickListener
を設定します。
スポットがクリック(タップ)されると、アプリはそのスポット(地図上の場所)を示す OnPoiClick(PointOfInterest)
イベントを受け取ります。PointOfInterest
には、緯度と経度の座標、お店やサービスの ID、スポットの名前が含まれます。
地図にスポットが表示されないようにする
スポット(地図上の場所)を非表示にするには、すべてのスポットまたは該当のカテゴリのスポットにカスタム スタイルを適用します。
次の JSON スタイル宣言を使用すると、地図上のすべてのビジネス スポットを非表示にすることができます。
[
{
"featureType": "poi.business",
"stylers": [
{ "visibility": "off" }
]
}
]
別の例として、次の JSON を使用してすべてのカテゴリのスポットの表示を簡素化することもできます。
[
{
"featureType": "poi",
"stylers": [
{ "visibility": "simplified" }
]
}
]
Java コードとその他の詳細については、スタイル設定で地図上の対象物を非表示にするためのガイドをご覧ください。