【发布时间】:2017-06-21 09:15:11
【问题描述】:
我的谷歌地图活动中有一些标记代表一些商店位置。我需要为每个标记编写点击事件,以便我可以为每个商店打开相应的站点。我正在使用以下代码添加标记。
public void onMapReady(GoogleMap googleMap) {
mMap = googleMap;
for(int i = 0 ; i < shop.size() ; i++ ) {
createMarker(shop.get(i).getLat(), shop.get(i).getLon(), shop.get(i).getShopname(),"", R.drawable.ic_location_city);
}
mMap.setOnMarkerClickListener(ShoppingPage.this);
}
protected Marker createMarker(double latitude, double longitude, String title, String snippet, int iconResID) {
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitude, longitude), 9f));
myMarker = mMap.addMarker(new MarkerOptions()
.position(new LatLng(latitude, longitude))
.anchor(0.5f, 0.5f)
.title(title)
.snippet(snippet)
.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_location_city_black_24dp)));
return myMarker;
}
当我尝试将点击侦听器添加到标记时,我无法将点击侦听器添加到所有标记。我只能将点击事件添加到最后添加的标记。但我需要为地图中的每个标记制作点击事件。请帮我。这是我的点击事件代码。
public boolean onMarkerClick(final Marker marker) {
if (marker.equals(myMarker))
{
//handle click here
Log.d("title",""+ marker.getTitle());
Log.d("position",""+ marker.getPosition());
}
return true;
}
【问题讨论】:
-
您可以为每个标记添加点击事件。你有什么问题?
-
我不知道如何为每个标记添加点击事件。使用我当前的代码仅最后添加的标记来响应点击。
标签: android google-maps google-maps-markers