Android百度地图一种简单实现多标注及响应时间的方法
16lz
2021-01-23
在我们使用Android百度地图开发的时候,很多时候会有一个需求,需要在地图上添加标注,代码如下:
BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.icon_marka);OverlayOptions overlayOptions = new MarkerOptions().position(new LatLng(latitude,longitude)).icon(bitmapDescriptor);Marker marker=(Marker) baiduMap.addOverlay(overlayOptions);
点击地图图标后触发逻辑如下:
@Override public boolean onMarkerClick(Marker marker) { //点击后的响应逻辑}
其中: baiduMap.setOnMarkerClickListener(this);
那么,问题来了,如果用户要求添加多个图标,并且每个图标有各自的点击响应逻辑时,该怎么处理呢?代码如下:
Bundle mBundle = new Bundle(); //使用Bundle来标识每一个标注的信息 mBundle.putInt("id",i); // 地图标注 BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.icon_marka); OverlayOptions overlayOptions = new MarkerOptions().position(new LatLng(hotelMsgList.get(i).latitude,hotelMsgList.get(i).longitude)).icon(bitmapDescriptor); Marker marker=(Marker) baiduMap.addOverlay(overlayOptions); marker.setExtraInfo(mBundle);
上例外面可加个for循环来创建地图标注,由上面代码可知通过一个Bundle对象,来存放每一个标注唯一的key,响应时通过取出Bundle中的key来识别是哪一个标注,响应代码如下:
@Override public boolean onMarkerClick(Marker marker) { Bundle bundle = marker.getExtraInfo(); int id = bundle.getInt("id"); //选择响应逻辑}
通过上面的例子简单地实现了百度地图的多标注响应,效果图如下。
更多相关文章
- android典型代码系列(三十)------DES加密算法
- 使用 Android NDK 重用现有的 C 代码
- 修改Android的开关机铃声、Android开关机画面与动画(附代码流程)
- Android 初学入门代码注释 学习笔记001 16.03.18
- Android实训所学功能实现代码集合
- Android自动更新代码
- android代码实现自动关机