iOS收藏

ios 通过点击自定义大头针获取屏幕坐标,转换成经纬度

2017-02-22  本文已影响1110人  Tomboy_Anan

这几天一直忙着整百度地图, 这个项目主要是完全模仿摩拜,ofo 等一类的共享单车类, 遇到过的一些坑点, 百度一下也能搜索到, 主要想记录自己遇到的一些麻烦事, 以备以后遇到类似问题能查看自己整理的资料

  1. 首先自定义大头针, 我在 -(BMKAnnotationView *)mapView:(BMKMapView *)mapView viewForAnnotation:(id<BMKAnnotation>)annotation 这个方法里,没有进行判断, 导致push 到另一控制器再回来时, 会出现系统的大头针和我自定义的大头针 重叠, 解决方法是在这个方法里添加判断
简书1.png

(2);
遇到的第二个问题是, 打开 app 后, 需要手动滑动一下地图,才能获取到周边自行车的地点,
解决办法是:

简书2.png

(3 )
通过点击屏幕, 获取到对应地图的经纬度编码
首先给地图添加手势

手势.png

然后再手势处理内部实现:


手势处理.png

这样就可以实时监控到用户点击屏幕的地理位置

(4 )
最后的问题是, 自定义大头针后, 点击大头针,需要从屏幕中心点位置,规划一跳路径到用户点击的大头针, 但是系统自带的didSelectAnnotationView 方法就不会被调用了, 然后点击大头针是没有任何反应的, 只好给大头针添加了 手势,


大头针添加手势.png

问题是如何获取用户点击 的哪个大头针 , 因为是共享单车, 界面上当然不止一两个大头针, 每一辆自行车都是对应的一个模型对象. 我想到的方法是, 将用户点击到的那个大头针坐标, 转换到地图,换成地理编码, 通过地理编码再来划线就简单多了

划线.png

至于画线的方法, 下篇有空再写上;

上一篇下一篇

猜你喜欢

热点阅读