我的谷歌地图 Activity 中有一些标记代表一些商店位置。我需要为每个标记编写点击事件,以便我可以为每个商店打开相应的站点。我正在使用以下代码添加标记。
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;
}
当我尝试将点击监听器添加到标记时,我无法将点击监听器添加到所有标记。我只能将点击事件添加到最后添加的标记。但我需要为 map 中的每个标记制作点击事件。请帮我。这是我的点击事件代码。
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;
}
最佳答案
使用这个:
首先让您的应用实现 GoogleMap.OnMarkerClickListener 然后创建一个标记数组:
Marker[] marker = new Marker[20]; //change length of array according to you
然后在里面
onMapReady(){
mMap.setOnMarkerClickListener(this);
for(int i = 0 ; i < shop.size() ; i++ ) {
marker[i] = createMarker(shop.get(i).getLat(), shop.get(i).getLon(), shop.get(i).getShopname(),"", R.drawable.ic_location_city);
}
然后终于
@Override
public boolean onMarkerClick(Marker marker) {
//you can get assests of the clicked marker
return false;
}
希望对您有所帮助!!!
关于android - android map 中的多个标记单击事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44671744/