设为首页 加入收藏

TOP

地图 SDK 系列教程-在地图上展示指定区域(转载)(二)
2019-09-14 00:52:33 】 浏览:140
Tags:地图 SDK 系列 教程 展示 指定 区域 转载
ed:NO];

 

显示效果如下:

 


 

 

墨卡托坐标点

如果需要展示多个墨卡托坐标点,可以使用地图 SDK 提供的与上述方法对应的 QBoundingMapRectWithPoints(QMapPoint *points, NSUInteger count) 和 - (void)setVisibleMapRect:(QMapRect)mapRect edgePadding:(UIEdgeInsets)insets animated:(BOOL)animated 等方法。

折线与覆盖物

当我们想在地图中展示路线或者覆盖物时,即地图 SDK 中的 QPolyline QPolygon 和 QCircle,我们可以直接获得他们的属性 boundingMapRect 再进行设置即可。

指定区域包含多个标注

在很多场景下,我们需要在地图上添加标注点 (Annotation) 并且自定义这些标注的 Image,如下所示:

 

 

 

我们可以通过下面的代码来使这些标注刚好显示在地图视野内:

// 计算包含 Annotation 与 MapRect 的外接矩形
QMapRect rect = [self.mapView mapRectThatFits:QMapRectNull containsCalloutView:NO annotations:self.annotations edgePadding:UIEdgeInsetsZero];
    
// 设置区域
self.mapView.visibleMapRect = rect;

 

显示效果如下:

 


 

 

当标注显示 Callout View 时,我们可以通过传入参数 bContainsCalloutView 为 YES 来将 Callout View 包含在地图视野内,显示效果如下:

 


 

 

有时我们需要指定区域同时包含当前的屏幕视野以及所有的标注,我们可以通过传入第一个参数 mapRect 为 self.mapView.visibleMapRect 来达到我们想要的效果。

限制展示指定的区域

当我们需要限制地图视野,使其只显示我们指定的区域时,以故宫举例,可以通过如下的代码进行设置:

CLLocationCoordinate2D coordinates[4];

// 故宫范围矩形的四个顶点的经纬度坐标
coordinates[0] = CLLocationCoordinate2DMake(39.922878,116.391547);
coordinates[1] = CLLocationCoordinate2DMake(39.912917,116.392100);
coordinates[2] = CLLocationCoordinate2DMake(39.913312,116.402507);
coordinates[3] = CLLocationCoordinate2DMake(39.923277,116.402024);
    
// 计算区域外接矩形
QCoordinateRegion region = QBoundingCoordinateRegionWithCoordinates(coordinates, 4);
    
// 计算平面投影矩形
QMapRect rect = QMapRectForCoordinateRegion(region);
    
// 限制展示区域
[self.mapView setLimitMapRect:rect mode:QMapLimitRectFitWidth];

 

显示效果如下:

 

 

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇'Attempt to create two anim.. 下一篇uni-app ios 苹果真机运行

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目