gpt4 book ai didi

swift - MKCoordinateRegion Make With Distance 在手机上给出了错误的结果

转载 作者:行者123 更新时间:2023-11-28 14:41:09 27 4
gpt4 key购买 nike

当使用 MKCoordinateRegionMakeWithDistance 为 MKMapView 设置区域时,生成的区域总是给出错误的结果,其中的尺寸总是比我为其他手机型号获得的最佳尺寸略大。

例如,做:

let region         = MKCoordinateRegionMakeWithDistance(someLocation, 400, 200)
let adjustedRegion = mapView.regionThatFits(region)
mapView.setRegion(adjustedRegion, animated: true)

(定义mapview的纵横比为2:1)

总是会产生垂直 420 米、水平 210~ 米的 View ,而其他手机型号不会出现这种情况。

可以理解,这是为了找到指定尺寸的“最佳拟合”区域,我担心的是 iPhone X 上的结果有所不同。 (在型号 8、8+、5s 上)

对于带有 mapViews 的 iPhone X 型号,我需要做些什么吗?

最佳答案

事实证明,mapkit 的 mapView 的 MKCoordinateRegionMakeWithDistance 会在没有安全区域插图的情况下进行计算。

由于我的 mapView 设置在屏幕底部,因此在应用垂直距离时,需要进行一些缩减以补偿这种奇怪的行为。

let verticalDistance = 400 * ((mapView.bounds.height - mapView.safeAreaInsets.bottom) / mapView.bounds.height )
let region = MKCoordinateRegionMakeWithDistance(someLocation, verticalDistance, 200)
let adjustedRegion = mapView.regionThatFits(region)
mapView.setRegion(adjustedRegion, animated: true)

这使得 mapView 的结果区域在垂直和水平距离上是正确的(与谷歌地图的网络距离测量工具相比)

关于swift - MKCoordinateRegion Make With Distance 在手机上给出了错误的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50520299/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com