商家和其他搜尋點

根據預設,搜尋點會與其對應的圖示一併顯示在基本地圖上。搜尋點包括公園、學校、政府大樓等。

此外,當地圖類型為「normal」時,地圖上預設會顯示「商家」搜尋點。商家搜尋點代表商家,例如商店、餐廳、飯店等。室內地圖 (平面圖) 上的商家搜尋點只會顯示在精簡模式地圖上。

每個搜尋點會對應至 Places API 中定義的一個地點。舉例來說,休閒公園是搜尋點,但像噴水池這類的項目通常就不是搜尋點 (除非其本身具有國家或歷史意義)。

監聽搜尋點的點擊事件

如果您想要回應輕觸了搜尋點的使用者,可以使用 OnPoiClickListener,如以下程式碼範例所示:

public class OnPoiClickDemoActivity extends FragmentActivity
    implements OnMapReadyCallback, GoogleMap.OnPoiClickListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.poi_click_demo);

        SupportMapFragment 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(getApplicationContext(), "Clicked: " +
                        poi.name + "\nPlace ID:" + poi.placeId +
                        "\nLatitude:" + poi.latLng.latitude +
                        " Longitude:" + poi.latLng.longitude,
                Toast.LENGTH_SHORT).show();
    }
}

根據預設,地圖上會顯示搜尋點,但系統不會提供預設的點擊顯示使用者介面;也就是說,使用者輕觸搜尋點時,API 不會自動顯示資訊視窗或任何其他使用者介面。

如以上範例所示,您可以透過呼叫 GoogleMap.setOnPoiClickListener(OnPoiClickListener) 在地圖上設定 OnPoiClickListener。 當使用者點擊 (輕觸) 搜尋點時,您的應用程式會收到 OnPoiClick(PointOfInterest) 事件,指出使用者點擊的搜尋點。PointOfInterest 包含經緯度座標、地點 ID 和搜尋點名稱。

停止在地圖上顯示搜尋點

將自訂樣式套用至所有搜尋點或特定類別的搜尋點,即可隱藏搜尋點。

下列 JSON 樣式宣告會隱藏地圖上的所有商家搜尋點:

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

再舉一個例子,下列 JSON 簡化了所有類別搜尋點的顯示方式:

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

如需 Java 程式碼和其他詳細資料,請參閱使用樣式設定隱藏地圖項目指南。