Android百度地图(多个marker的点击事件)

QQ群 668524118,欢迎加入交流!



此前,笔者在进行百度地图开发的时候,发现百度提供的marker的点击事件中,并不能确定我点击的marker的是哪一个marker,这就很尴尬了.

解决方法 : marker是可以携带参数过去的,所以我们可以依靠参数来判断点击的是哪个图标.


我们的marker是通过循环添加进去的.

在这里,我们先创建一个Bundle用来进行marker的值的传递.

Bundle mBundle = new Bundle();
mBundle.putInt("id", list.get(i).getId());

在地图上添加之前构建好的Markeroption ,用来展示我们的marker

//  构建MarkerOption,用于在地图上添加Marker
    MarkerOptions option = new MarkerOptions().position(point).icon(bitmap).zIndex(i).draggable(true).extraInfo(mBundle).title(list.get(i).getName());
    ption.animateType(MarkerOptions.MarkerAnimateType.drop);
//  在地图上添加Marker,并显示
     marker = (Marker) mBaiduMap.addOverlay(option);
    marker.setExtraInfo(mBundle);
    markerList.add(marker);


百度提供的marker的点击事件.*(在这里,我做了一个跳转,我是通过传过来的id来区分是哪个图标的)

BaiduMap.OnMarkerClickListener onMarkerClickListener = new BaiduMap.OnMarkerClickListener() {
    @Override
    public boolean onMarkerClick(Marker marker) {
        Intent intent = new Intent();
        Bundle bundle = marker.getExtraInfo();
        int id = bundle.getInt("id");
        intent.putExtra("id", id);
        openActivity(intent, TalentDetailActivity.class);
        return false;
    }
};

创建的marker可以携带一些参数,用来在点击的时候获取使用.

笔者会将在开发中踩过的坑都记录在博客中,欢迎关注.

你可能感兴趣的:(百度地图)