Recenter MapKit地图

时间:2012-01-10 00:26:36

标签: objective-c xcode ios5 mapkit

我想通过代码在IPad应用程序中重新定位MapKit地图。仅此而已,将地图平移到原始缩放级别的给定中心。没有放大,没有缩小,只是平移。

以下是我的工作:

- (void)panToLatitude:(double)lat andLongitude: (double) lon sender: (id)      sender
{
CLLocationCoordinate2D zoomLocation;
zoomLocation.latitude = lat;
zoomLocation.longitude = lon;

MKCoordinateRegion viewRegion = MKCoordinateRegionMake(zoomLocation, [self.map region].span);

MKCoordinateRegion adjustedRegion = [self.map regionThatFits:viewRegion];                

[self.map setRegion:adjustedRegion animated:YES];
}

它有效,但有时(20-30%的时间)它会改变缩放级别,它会缩小。我不想要这个,只需重新定位地图。

有什么想法吗?

由于

1 个答案:

答案 0 :(得分:1)

地图视图的行为正确,因为它使用墨卡托投影精确显示地图区域。当你靠近赤道时,经度的两条子午线之间的距离会更大。根据您平移的位置,地图视图可能必须调整缩放级别以适应您提供的区域。

对于解决方案,我会在Troy Brant编写的MKMapView上查看此类别。它允许您更改地图视图的位置,同时保持一致的缩放比例,并为您做所有书呆子数学的东西。

http://troybrant.net/blog/2010/01/set-the-zoom-level-of-an-mkmapview/