设置地图坐标边界默认为显示(0,0)

时间:2016-07-01 23:49:50

标签: ios swift mapbox

我正构建一个MGLCoordinateBounds,我希望在MGLMapView中显示。一切都很好,直到我尝试使用边缘插入来提供一些填充。在所有方面调用带有100px边缘插入的setVisibleCoordinateBounds(_:, edgePadding:, animated:)都可以。如果我在所有边上将边缘插入设置为200px,则地图视图将移动到(0,0)。我曾预料到地图缩放系数会改变以使一切都合适。 FWIW,在我正在使用的iPhone 6上,地图视图为653x750像素,插图不超过地图视图大小。

我可以使用100px填充,但我担心的是我不知道何时或为什么会出现这个问题。一些MGLCoordinateBounds的值是否与100px填充有相同的问题?有没有办法预测和避免这个问题?

1 个答案:

答案 0 :(得分:0)

Deep down MGLCoordinateBounds转换为CLLocationCoordinate2D。所有单位都是度数。

要验证,您要将100px200px转换为度,是吗?

很抱歉这个显而易见的问题。将Mapview重置为(0,0)令人费解。

您可能必须根据缩放级别计算以度为单位的填充

关于填充的建议,topBottomleftRight涉及一些数学

    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)