这几天一直忙着整百度地图, 这个项目主要是完全模仿摩拜,ofo 等一类的共享单车类, 遇到过的一些坑点, 百度一下也能搜索到, 主要想记录自己遇到的一些麻烦事, 以备以后遇到类似问题能查看自己整理的资料
- 首先自定义大头针, 我在 -(BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id<BMKAnnotation>)annotation 这个方法里,没有进行判断, 导致push 到另一控制器再回来时, 会出现系统的大头针和我自定义的大头针 重叠, 解决方法是在这个方法里添加判断
(2);
遇到的第二个问题是, 打开 app 后, 需要手动滑动一下地图,才能获取到周边自行车的地点,
解决办法是:
(3 )
通过点击屏幕, 获取到对应地图的经纬度编码
首先给地图添加手势
然后再手势处理内部实现:
手势处理.png
这样就可以实时监控到用户点击屏幕的地理位置
(4 )
最后的问题是, 自定义大头针后, 点击大头针,需要从屏幕中心点位置,规划一跳路径到用户点击的大头针, 但是系统自带的didSelectAnnotationView 方法就不会被调用了, 然后点击大头针是没有任何反应的, 只好给大头针添加了 手势,
大头针添加手势.png
问题是如何获取用户点击 的哪个大头针 , 因为是共享单车, 界面上当然不止一两个大头针, 每一辆自行车都是对应的一个模型对象. 我想到的方法是, 将用户点击到的那个大头针坐标, 转换到地图,换成地理编码, 通过地理编码再来划线就简单多了
划线.png至于画线的方法, 下篇有空再写上;
网友评论