web-dev-qa-db-ja.com

Android google maps APIv2でマーカー情報ウィンドウを非表示にする

現在、Android Google maps API v2を使用して、Googleマップ内のすべてのマーカーを表示することができました。

マップにマーカーを追加:

mapView.addMarker
     (new MarkerOptions()
      .position(aUsersLocation).
      icon(BitmapDescriptorFactory.fromBitmap(aUserImage))
      .snippet(My_VALUE_1)
      .title(My_VALUE_2)
     .hideInfoWindow();

いくつかのマーカーがあり、各マーカーのスニペットとタイトルにいくつかの値(My_VALUE_1とMy_VALUE_2)を割り当てています。ユーザーがマーカーをクリックすると、これらの一意の値が必要になり、onMarkerClickリスナーで次のようにこれらの値を受け取ります。

        @Override
        public boolean onMarkerClick(Marker theMarker) 
        {
            String aValue1 = theMarker.getSnippet();
            String aValue2 = theMarker.getTitle();
            theMarker.getPosition().latitude...
           ...
            return false;
        }

私の質問は、スニペットとタイトルの値をマーカーに追加しているときに、ユーザーがマーカーをクリックすると、infoWindowが表示されるということです。

マーカーのinfoWindowを非表示にする必要があります。 hideInfoWindowで試しましたが、機能していないようです。

何か提案をお願いします。

ありがとうございました。

20
user915303
return true;

onMarkerClickから、情報ウィンドウを表示し、マーカーを中心とするデフォルトの動作を無効にします。

94
MaciejGórski

クラスターを使用する場合は、次のように記述します。

private var clusterManager: ClusterManager<SomeClusterItem>? = null

override fun onMapReady(googleMap: GoogleMap) {
    this.googleMap = googleMap

    clusterManager = ClusterManager(context!!, googleMap)
    ... // Other clusterManager and clusterRenderer initializations.

    clusterManager!!.setOnClusterItemClickListener { item ->
        // selectMarker(item)
        true // false, if you want to show InfoWindow.
    }
}
0
CoolMind