我正在构建要显示在MGLCoordinateBounds
中的MGLMapView
。一切正常,直到我尝试使用边缘插图提供一些填充。调用所有边缘均具有100px的边缘的setVisibleCoordinateBounds(_:, edgePadding:, animated:)
很好。如果我将所有边的边缘插入设置为200px,则地图视图将移动到(0,0)。我曾预计地图缩放系数会发生变化,以使所有内容都适合。 FWIW,在我使用的iPhone 6上,地图视图为653x750像素,插图未超过地图视图的大小。
我可以使用100px的填充,但是让我担心的是我不知道何时或为什么会出现此问题。 MGLCoordinateBounds
的某些值在填充100px时会有相同的问题吗?有什么方法可以预测和避免此问题?
最佳答案
Deep down MGLCoordinateBounds
转换为CLLocationCoordinate2D
。所有单位均为度。
只是为了验证,您正在将100px
和200px
转换为度数,对吗?
很抱歉看到这个明显的问题。 Mapview重设为(0,0)令人费解。
您可能需要基于缩放级别以度为单位计算填充
关于填充的建议,其中topBottom
和leftRight
涉及一些数学
let topBottom = // computation based on Zoom level, and horizontal screen resolution
let leftRight = // computation based on Zoom level, and vertical screen resolution
let edgeOffset = UIEdgeInsetsMake(top: topBottom,
left: leftRight,
bottom: topBottom,
right: leftRight)
关于ios - 设置 map 坐标范围默认为显示(0,0),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38155135/