現在、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で試しましたが、機能していないようです。
何か提案をお願いします。
ありがとうございました。
return true;
onMarkerClick
から、情報ウィンドウを表示し、マーカーを中心とするデフォルトの動作を無効にします。
クラスターを使用する場合は、次のように記述します。
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.
}
}