要做一个功能,获取当前所在位置附近的POI兴趣点,然后以列表的形式显示。由于以往比较少接触地图开发,因此一开始的时候以为用原生地图去解决应该不难吧,其后,就开始了一次又一次的遇坑之旅。弄来弄去,还是妥协,用第三方吧。
原生兴趣点POI搜索用到的是框架:<MapKit/MapKit.h>以及<CoreLocation/CoreLocation.h>这两个地图框架。代码也很简单:
Run起来,坑也就出来了,原点origionpoint尝试写死的经纬度是广州花都的一个位置,span在地图上基于原点延伸,region为搜索的区域范围,输入keyword进行搜索,坑一来了,高德sdk中,就算不输入keyword第三方也会进行默认搜索出周边的热点,但原生呢,不输入keyword的情况下,startwithCompletionHandler方法中的block回调,里面的response会返回nil,但如果用高德sdk进行周边热点的默认搜索,它返回的结果里面明明参杂了很多商店、学校、写字楼、酒店等等等等,怎样硬生生实现呢,貌似只有输入不同的keyword不停循环调取startwithCompletionHandler这个方法。试着硬来,我嘞个去,这个循环超级耗时的。
然而,坑二来了,按下run,结果一目了然,每一次startwithCompletionHandler的搜索只有10个搜索结果,10个搜索结果也就算了,搜索出的酒店还在广州越秀区,相差了四五十公里啊亲,what the fxxx?再跑一次,结果依然是那10个搜索结果,呃,这就相当尴尬了,让这10个结果产生变化有两种不同的方式,1是加大span的延伸范围,2是直接调整原点origionpoint。那这这这。。这和高德sdk的POI没法比拟啊,实在没招了,转去用高德sdk了。哭了。