如何在iOS mapKit中实现最大缩放级别?

时间:2017-04-06 02:22:51

标签: ios swift3 mkmapview mapkit zoom

我知道这篇文章:How to get to the max zoomlevel on iOS MKMapView

这似乎正是我解决问题所需要的,然而,这项技术对我来说并不适用。

如果我将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)

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

我通过...使用不同的SDK进行映射来解决这个问题。我通过继续测试发现的是,appleMaps并不总是将图像降低到特定的缩放级别,并且当您放大超近时似乎会被绊倒。在某些位置它可以完美地缩放,而其他位置则不会 - 这是一个不一致的问题,作为一个开发人员,你可能想要厌倦。 googleMap具有更高质量的图像,并且没有缩放一致性问题。