我正在构建要显示在MGLCoordinateBounds中的MGLMapView。一切正常,直到我尝试使用边缘插图提供一些填充。调用所有边缘均具有100px的边缘的setVisibleCoordinateBounds(_:, edgePadding:, animated:)很好。如果我将所有边的边缘插入设置为200px,则地图视图将移动到(0,0)。我曾预计地图缩放系数会发生变化,以使所有内容都适合。 FWIW,在我使用的iPhone 6上,地图视图为653x750像素,插图未超过地图视图的大小。

我可以使用100px的填充,但是让我担心的是我不知道何时或为什么会出现此问题。 MGLCoordinateBounds的某些值在填充100px时会有相同的问题吗?有什么方法可以预测和避免此问题?

最佳答案

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)

关于ios - 设置 map 坐标范围默认为显示(0,0),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38155135/

10-12 13:17