百度地图移动标注实时改变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也会跟着移动。


百度地图移动标注实时改变overlay_第1张图片
移动前


百度地图移动标注实时改变overlay_第2张图片
移动后

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

你可能感兴趣的:(百度地图移动标注实时改变overlay)