我想通过代码在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%的时间)它会改变缩放级别,它会缩小。我不想要这个,只需重新定位地图。
有什么想法吗?
由于
答案 0 :(得分:1)
地图视图的行为正确,因为它使用墨卡托投影精确显示地图区域。当你靠近赤道时,经度的两条子午线之间的距离会更大。根据您平移的位置,地图视图可能必须调整缩放级别以适应您提供的区域。
对于解决方案,我会在Troy Brant编写的MKMapView上查看此类别。它允许您更改地图视图的位置,同时保持一致的缩放比例,并为您做所有书呆子数学的东西。
http://troybrant.net/blog/2010/01/set-the-zoom-level-of-an-mkmapview/