Bisnis dan Lokasi Menarik Lainnya

Secara default, lokasi menarik (POI) muncul pada peta dasar bersama ikonnya. POI mencakup taman, sekolah, gedung pemerintahan, dan lainnya.

Selain itu, POI bisnis muncul secara default pada peta jika jenis peta adalah normal. POI bisnis mewakili bisnis seperti toko, restoran, hotel, dan lainnya. POI bisnis di peta lantai (denah lantai) hanya muncul pada peta mode ringan.

POI mengacu pada ID Tempat, seperti yang didefinisikan di Places SDK for Android. Misalnya, taman rekreasi adalah POI, tetapi fitur-fitur seperti air mancur umumnya bukan POI (kecuali jika memiliki nilai sejarah atau nasional).

Memproses peristiwa klik pada POI

Jika Anda ingin merespons ketukan pengguna pada suatu POI, Anda dapat menggunakan OnPoiClickListener seperti yang ditunjukkan pada contoh kode berikut:

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()
    }
}
      

POI muncul pada peta secara default, tetapi tidak ada UI on-click default. Artinya, API tidak secara otomatis menampilkan jendela info atau antarmuka pengguna lainnya saat pengguna mengetuk POI.

Seperti yang ditunjukkan contoh di atas, Anda menetapkan OnPoiClickListener pada peta dengan memanggil GoogleMap.setOnPoiClickListener(OnPoiClickListener). Saat pengguna mengklik (mengetuk) POI, aplikasi Anda menerima peristiwa OnPoiClick(PointOfInterest) yang menunjukkan lokasi menarik (POI) yang diklik pengguna. PointOfInterest berisi koordinat lintang/bujur, ID tempat, dan nama lokasi menarik.

Menghentikan POI agar tidak muncul di peta

Anda dapat menyembunyikan lokasi menarik (POI) dengan menerapkan gaya kustom ke semua POI atau ke kategori POI tertentu.

Deklarasi gaya JSON berikut menyembunyikan semua POI bisnis pada peta:

[
  {
    "featureType": "poi.business",
    "stylers": [
      { "visibility": "off" }
    ]
  }
]

Sebagai contoh lain, JSON berikut menyederhanakan tampilan semua kategori POI:

[
  {
    "featureType": "poi",
    "stylers": [
      { "visibility": "simplified" }
    ]
  }
]

Untuk kode Java dan detail lainnya, lihat panduan untuk menyembunyikan fitur peta dengan penataan gaya.