iOS地图找房、周边(仿链家、安居客等地图找房)-高德地图-OC

       最近写了一个类似链家地图找房功能。因为要求的是用高德地图,查了很多资料,找不到合适的参考资源,百度地图倒是一大堆。小白玩家,浪费了很多时间,决定写个Demo。主要是根据功能实现过程一步一步进行展示。


iOS地图找房、周边(仿链家、安居客等地图找房)-高德地图-OC_第1张图片
主体思路


主要使用的几个方法(类似于tableView重用机制):

- (MAAnnotationView*)mapView:(MAMapView*)mapView viewForAnnotation:(id)annotation(大头针绘制)

- (void)mapView:(MAMapView*)mapView didSelectAnnotationView:(MAAnnotationView*)view(点击大头针)

- (void)mapView:(MAMapView*)mapView mapDidZoomByUser:(BOOL)wasUserAction(缩放结束后调用,可以根据wasUserAction判断是否是用户手动缩放)

Demo仅供参考,本人小白,代码质量请自行擦亮双眼。查看Demo需要先用cocoaPods集成高德等第三方库所需库已经在Podfile里面写好了,使用的时候只需要pod install 即可运行。接下来走两张效果图:


iOS地图找房、周边(仿链家、安居客等地图找房)-高德地图-OC_第2张图片
主显示图


iOS地图找房、周边(仿链家、安居客等地图找房)-高德地图-OC_第3张图片
小区房源图

复杂的地方并不是大头针的绘制,而是数据的筛选。实际开发会根据户型、价格等影响所展示的数据。所以数据请求这块一定得封装好。具体实现以及方法用途,注释写的很清楚,这里不再赘述。这里主要解释一下区间划分(以Demo为例,所在地为上海)。

高德的缩放级别为3-19。当点击地图找房进入地图页面,设置缩放级别为11,可以显示整个上海各个区域标注点(如:徐汇、松江、宝山等区),暂定义为(级别1)加以区分。点击徐汇则需要展示徐汇区域标注点,如龙华、上海南站、植物园等,定义为(级别2)。点击龙华则展示龙华区域所有小区名称和对应房源数量(如图:徐汇苑(2))(级别3)。点击徐汇苑则需要展示其内的两套可售房源。

 缩放级别说明:

 3-13  --->  11    级别1

 13-15 --->  14   级别2

 15-19 --->  16   级别3

打开地图,当前缩放级别为11。声明一变量nowZoom用来记录当前设置的缩放级别,nowZoom = 11。当用户手动缩放地图,如果缩放级别在3-13之间,不处理数据。当缩放级别为13-15之间,则设置缩放级别为14(跳转级别2),更新数据源,更新nowZoom为14 ,设置中心点经纬度,刷新地图。同理,当前设置的缩放级别为nowZoom等于14时,如果用户缩放结束后,当前缩放级别在13-15之间则不处理,如果在3-13之间,则需要展示整个上海区域数据(级别1)。设置nowZoom为11,更新数据源并刷新地图,依此论推。至于缩放级别区间参数从哪儿来的,我只能说模仿链家一点点实验获取的参数,并不准确,需要根据项目具体情况而定。

地图周边 有时间的话会补上,效果图如下。小白日常笔记。大神见谅。


iOS地图找房、周边(仿链家、安居客等地图找房)-高德地图-OC_第4张图片
周边

你可能感兴趣的:(iOS地图找房、周边(仿链家、安居客等地图找房)-高德地图-OC)