2017-04-06 85 views
0

我知道這個職位:How to get to the max zoomlevel on iOS MKMapView如何在iOS mapKit中實現最大縮放級別?

而這似乎正是我需要解決的問題,但是,這種技術不適合我。

如果我將eyeAltitude設置爲50甚至100,則返回相同的地圖縮放比例。但是,一旦地圖顯示,我可以捏縮放到所需的縮放級別。有沒有一個解決方案,以編程方式實現在地圖視圖的初始加載時縮小縮放級別?

編輯:我試過使用setRegion,但問題似乎與使用.satelliteFlyover具體相關。由於圖像質量的差異,我需要使用.satelliteFlyover。 進一步編輯:我也發現模擬器似乎給出了一個不同的'原生縮放比',當它在我的設備上運行。我希望有人讀這可以提供洞察力!

我正在使用的代碼是:

let greenLocation:CLLocationCoordinate2D = CLLocationCoordinate2DMake(CLLocationDegrees(greenX),CLLocationDegrees(greenY)) 
     let altitude:CLLocationDistance = 80 
     self.greenMap.mapType = .satelliteFlyover 
     let camera = MKMapCamera(lookingAtCenter: greenLocation, fromEyeCoordinate: greenLocation, eyeAltitude: altitude) 
     self.greenMap.setCamera(camera, animated: true) 

回答

0

我解決了這個問題...使用不同的SDK進行映射。我通過持續測試發現,appleMaps並不總是將圖像縮小到特定的縮放級別,並且當您放大超近距離時似乎會絆倒。在某些地方它可以完美縮放,而其他地方則不會 - 作爲開發者你可能會感到厭倦的不一致。谷歌地圖有更高質量的圖像,並沒有縮放一致性問題。

0

您可以設置區域,使地圖視圖比例,以適應。使用此功能。

open func setRegion(_ region: MKCoordinateRegion, animated: Bool) 

以下是示例代碼。

let map = MKMapView() 
let center = CLLocationCoordinate2D(latitude: 115, longitude: 24) 
let span = MKCoordinateSpan(latitudeDelta: 0.003, longitudeDelta: 0.003) 
let region = MKCoordinateRegion(center: center, span: span) 
map.setRegion(region, animated: false) 
+0

謝謝@Lumialxk。如果我使用標準的二維衛星圖像,這是有效的。然而它是黑暗的,在最放大的水平上質量很差。當我使用'map.maptype = .satelliteFlyover'時,我得到了一個更好的圖像,但是我仍然存在這個問題。它會縮放到我知道的標準高度並不是完全縮放,因爲我仍然可以捏縮放。在最終產品中,我不希望用戶能夠縮放變焦,所以我真的需要從一開始就獲得變焦。 – matador0227