当使用MKCoordinateRegionMakeWithDistance设置MKMapView的区域时,得到的区域总是给出错误的结果,其中的大小总是比我在其他手机型号上得到的最佳大小略大。
例如,执行以下操作:
let region = MKCoordinateRegionMakeWithDistance(someLocation, 400, 200)
let adjustedRegion = mapView.regionThatFits(region)
mapView.setRegion(adjustedRegion, animated: true)(mapview的垂直和水平比例定义为2:1)
总是会得到一个垂直方向为420米,水平方向为210~ m的视图,而其他手机型号则不会出现这种情况。
可以理解的是,它是为了找到特定尺寸的“最佳拟合”区域,我担心的是,结果在iPhone X上是不同的。(在型号8,8+,5s上)
是否需要为使用mapViews的iPhone X机型专门做些什么?
发布于 2018-05-25 09:36:47
事实证明,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的结果区域在垂直和水平距离上都是正确的(与google地图的web距离测量工具相比)
https://stackoverflow.com/questions/50520299
复制相似问题