我正在尝试使用以下函数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函数没有移动到正确的区域。我在较小的区域(英国的子部分)使用此功能,它似乎正常工作。任何人都可以告诉我他们是否有类似的问题或我做错了什么?
由于
答案 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];
没有对此进行全面调查,但似乎是一个很好的解决方法。