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

How do I achieve the maximum zoom level in iOS mapKit?

我知道这个 post: How to get to the max zoomlevel on iOS MKMapView

这似乎正是我需要解决的问题,但是,该技术对我不起作用。

如果我将 eyeAltitude 设置为 50,甚至 100,我会返回相同的地图缩放。然而,一旦地图显示出来,我就可以捏合以缩放到所需的缩放级别。有没有一种解决方案可以在地图视图的初始加载时以编程方式实现缩小缩放级别?

编辑:我试过使用 setRegion 但问题似乎与具体使用 .satelliteFlyover 有关。由于图像质量的差异,我需要使用 .satelliteFlyover。 进一步编辑:我还发现模拟器似乎提供了与在我的设备上运行时不同的 'native zoom'。我希望有人读到这篇文章可以提供见解!!

我使用的代码是:

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)

您可以设置区域以使地图视图比例适合。使用此功能。

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)

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