iOS之封装集成

iOS百度地图控制地图显示比例在屏幕上显示所有的大头针

2016-09-07  本文已影响2678人  喵喵退后

前段时间要做一个在地图上显示所有员工的当前位置,当然我觉得这个需求有点变态,如果一个人在南极,一个在北极呢.当然这种情况不太能出现啊哈哈..
以下是我的解决办法望遇见同样问题的伙伴多个参考,当然大家有好的建议可以一起切磋。

BMKMapPoint point1 = BMKMapPointForCoordinate(CLLocationCoordinate2DMake(39.915,116.404));  
BMKMapPoint point2 = BMKMapPointForCoordinate(CLLocationCoordinate2DMake(38.915,115.404));  
CLLocationDistance distance = BMKMetersBetweenMapPoints(point1,point2);
//计算最小经纬度和最大经纬度两点之间的距离
 int dictance = [self getDistance];
//这个数组就是百度地图比例尺对应的物理距离,其中2000000对应的比例是3,5对应的是21;可能有出入可以根据情况累加
NSArray *zoomLevelArr = [[NSArray alloc]initWithObjects:@"2000000", @"1000000", @"500000", @"200000", @"100000", @"50000", @"25000", @"20000", @"10000", @"5000", @"2000", @"1000", @"500", @"200", @"100", @"50", @"20", @"10", @"5", nil];
 for (int j=0; j<zoomLevelArr.count; j++) {
       if (j + 1 < zoomLevelArr.count) {
         if (dictance < [zoomLevelArr[j] intValue] && dictance > [zoomLevelArr[j+1] intValue] ) {
                    [_mapView setZoomLevel:j+5];
                    break;
          }
       }    
}

实现起来比较复杂,要实现这种需求并不复杂,百度地图上提供的有点聚合功能,就是在点比较多的情况下,这些点分布有比较广的情况下,使用点聚合,多个点聚合成一个点,通过手势缩放显示更多的点。

上一篇下一篇

猜你喜欢

热点阅读