Mapbox - zoomWithLatitudeLongitudeBoundsSouthWest不缩放到正确的位置

时间:2014-04-30 19:54:31

标签: ios mapping google-maps-api-2 mapbox

我正在尝试使用以下函数zoomWithLatitudeLongitudeBoundsSouthWest来缩放到英国的范围。我有以下latlongs:

SouthWest = (latitude = 49.724355000000003, longitude = -8.7919210000000003)
NorthEast =  (latitude = 59.556961999999999, longitude = 2.102922)

请使用以下内容:

[rmMapView zoomWithLatitudeLongitudeBoundsSouthWest:self.southWest northEast:self.northEast animated:YES];

当它传入函数时,它返回以下预计边界:

origin: (185130.482481, 6398696.510918) size: (48919.698096, 66653.088655)

然而,这不是英国的预期程度,它实际上是放大到法国。在此过程中,我还使用以下方法设置了地图的约束:

[rmMapView setConstraintsSouthWest:self.southWest northEast:self.northEast];

当我在地图上平移并缩小时,地图的约束是正确的,即我无法移动到英国之外。这意味着正确设置了southWest和northEast,但是,zoomWithLatitudeLongitude函数没有移动到正确的区域。我在较小的区域(英国的子部分)使用此功能,它似乎正常工作。任何人都可以告诉我他们是否有类似的问题或我做错了什么?

由于

2 个答案:

答案 0 :(得分:3)

也许这有点晚了,但这个问题让我失去了一整天的工作。您可能正在测试64位设备。在32位设备上试用你的代码,应该可以正常工作。

Mapbox在64位设备上存在缩放中心的问题(缩放级别正常,但地图偏移不是)。

我通过在设置缩放后设置地图的新中心来解决此问题。 尝试添加以下行:

[rmMapView setCenterCoordinate:CLLocationCoordinate2DMake(lat,lng)];
just after zoomWithLatitudeLongitudeBoundsSouthWest
where lat = (latMin + latMax)/2 and lng = (lngMin + lngMax)/2)

注意:我正在传递动画:不,所以这适用于我的情况。在你的情况下尝试以某种方式动画seCenterCoordinate。

答案 1 :(得分:0)

由于某些原因,初始化期间MapView帧存在问题。基于ViewDidLoad中的另一个视图更新框架似乎可以解决问题。

[self.mapView setFrame:self.view.frame];

没有对此进行全面调查,但似乎是一个很好的解决方法。