实现出来的效果如下图,可以选择写字楼、小区、学校等,获取到定位周边的信息,同时也可以改变当前位置来获取周围的信息。
思路:
1.集成高德的地图定位显示地图,在获取的定位点防止图片,当地图移动就把图片的位置转货坐标系获取到location信息
2.集成高德的检索功能,通过location来检索周围的信息。点击不同的搜索方式就切换检索条件
3.用tableview来展示获取到的信息,用户点击cell把获取的位置信息通过block传到上级控制器
首先需要添加高德的AMap3DMap、AMapFoundation、AMapSearch这3个框架到项目里。我使用的是pods集成的,如果使用手动集成有个坑,在引用框架的时候,要直接拖到项目里,不要按高德文档里写的引用,那样会报错找不到文件,你可以试试。
接下来的实现是让地图显示出来,初始化高德的地图,实现高德地图的代理方法。
[self initMapViews];
到这里便可以获取到地图上点移动的location了,接着是实现search功能了。同样是初始化search和代理方法
[self initSearch];
我做的时候是在获取到检索信息之后来做的切换检索条件
这里强调一点就是请求错误时的代理方法一定要写上,因为偶尔是会出现解析出错的,严谨些的好。这时检索到的数据已经获取到了,那么就是在tableview上显示出来即可了
[self setupTableViews];