android - android map 中的多个标记单击事件

标签 android google-maps google-maps-markers

我的谷歌地图 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/

相关文章:

android - Google Maps Android -- map 突然不再显示

google-maps - Google Geocoding API 结果的本地化

jquery - 在 map 上显示多个标记及其自己的信息窗口

Android MapView自定义标记都是一样大小的

JavaScript 数组遍历手动工作,但循环不

javascript - Google map 中自定义标记的编号

android - 计算将应用程序移植到另一部手机所需的工作量时要考虑的事项

java - 如何使用 volley 在 android 中上传视频

java - Android中整个布局的滚动条

android - 检测OSMDroid map 加载完成