商業施設やその他の有名スポット

プラットフォームを選択: Android iOS JavaScript

スポット(地図上の場所)は、対応するアイコンとともに基本地図にデフォルトで表示されます。公園、学校、政府機関などもスポットに該当します。

また、地図タイプが 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 コードとその他の詳細については、地図上の対象物をスタイルで非表示にするためのガイドをご覧ください。