高德地圖設置最適合范圍setVisibleMapRect

當界面中有多個大頭針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讓他適配到正確界面.
方法很笨,如果大家有更好的方法,麻煩留言告訴我

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。