根據預設,搜尋點 (POI) 與對應的圖示會一併顯示在基本地圖上。搜尋點包括公園、學校、政府大樓等。
此外,如果地圖類型為 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 程式碼和其他詳細資料,請參閱「使用樣式設定隱藏地圖項目」指南。