当界面中有多个大头针AnnotationView时,需要缩放地图至适配当前所有的大头针的范围Rect,这里我设置了内偏移50,大家可以根据项目需要选择增加与否
var coords = [CLLocationCoordinate2D(latitude: latitude, longitude: longitude),CLLocationCoordinate2D(latitude: otherLat, longitude: otherLon)]
let rect = MAPolygon.init(coordinates: &coords, count: UInt(coords.count))?.boundingMapRect
MapView.setVisibleMapRect(rect!, edgePadding: UIEdgeInsets(top: 50, left: 50, bottom:50, right: 50), animated: true)
这个方法2d地图的SDK 在viewDidLoad或者viewWillAppear里调用的话是有效的,可以让地图定位到大头针适配的范围,在3d地图SDK下,就会无效,需要改到viewDidAppear中调用才能行,但是这么操作也会有缺陷,那就是打开地图的时候,你没法确定区域,那地图就会先显示默认城市,一般为北京,然后在缩放到你给的rect下,而我这边给出的方法是,调用两次,
在viewDidLoad里调用先让地图预加载到你设定的rect的位置附近,再在viewDidAppear让他适配到正确界面.
方法很笨,如果大家有更好的方法,麻烦留言告诉我
网友评论