2017-04-06 103 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