百度地图移动标注实时改变overlay

闲下来可以总结总结项目中的一些难点。

下面说下移动标注改变相应的overlay的方法:

1、首先你要自行解决百度地图的搭建。让hello baiduMap正确显示即可。

2、我们在- (void)mapView:(BMKMapView*)mapView onClickedMapBlank:(CLLocationCoordinate2D)coordinate;这个代理方法里获取点击地图生成标注。

3、在- (BMKOverlayView*)mapView:(BMKMapView*)mapView viewForOverlay:(id)overlay;这个代理方法里根据标注来生成view。(我的Demo里只允许设置4个点,生成view)

4、通过- (void)mapView:(BMKMapView*)mapView annotationView:(BMKAnnotationView*)view didChangeDragState:(BMKAnnotationViewDragState)newState

fromOldState:(BMKAnnotationViewDragState)oldState这个代理方法获得移动标注时标注的coordinate。

5、我们通过

/**

*设置标注的坐标,在拖拽时会被调用.

*@param newCoordinate新的坐标值

*/

- (void)setCoordinate:(CLLocationCoordinate2D)newCoordinate;

此方法改变已有的标注的coordinate。

6、当我们移动标注时,不停的画overlay,同时删除上一次的overlay。即能达到效果

Demo用法:运行后,在地图上随便点4个点,会生成4个标注,点击按钮会生成相应的view,长按标注,标注会移动,同时view也会跟着移动。


移动前


移动后

Demo:https://github.com/edwardGG/BaiduMap-overlay

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

友情链接更多精彩内容