Ios 如何在MKMapView中获得更细粒度的跨度

Ios 如何在MKMapView中获得更细粒度的跨度,ios,mkmapview,Ios,Mkmapview,我使用的是MKMapView,初始化方式如下: homeLocation.latitude = 42.033126; homeLocation.longitude = -70.168621; [self.mapView setCenterCoordinate:homeLocation animated:NO]; MKCoordinateRegion viewRegion; viewRegion.center = homeLocation; viewRegion.span = MKCoord

我使用的是MKMapView,初始化方式如下:

homeLocation.latitude = 42.033126;
homeLocation.longitude = -70.168621;

[self.mapView setCenterCoordinate:homeLocation animated:NO];

MKCoordinateRegion viewRegion;

viewRegion.center = homeLocation;
viewRegion.span = MKCoordinateSpanMake(1.7, 1.7);

[self.mapView setRegion:[self.mapView regionThatFits:viewRegion] animated:NO];
这是我的应用程序

没关系,除了我的应用程序,我需要把它放大一点。但当我尝试这个:

viewRegion.span = MKCoordinateSpanMake(1.8, 1.8);   // use span of 1.8, not 1.7
我明白了:

它被放大了。如果我看一下MKMapView的区域,latitudeDelta I为3.54981,Longtudedelta为3.51562

如何将跨度设置为介于1.7和3.5之间的值?对于这个特殊的应用程序,我希望达到2.25左右


注意:mapview收缩可以精确缩放到我想要的范围。

您在该设备上试用过吗?有时我在设备上对缩放级别的控制比在模拟器上要多。

MKCoordinateSpanMake使用度,1度大约是69英里。如果需要更细粒度的设置,请改用mkcoordinaeregionmakewithdistance

CLLocationCoordinate2D homeLocation;
homeLocation.latitude = 42.033126;
homeLocation.longitude = -70.168621;

[self.mapView setCenterCoordinate:homeLocation animated:NO];

 MKCoordinateRegion viewRegion = MKCoordinateRegionMakeWithDistance( homeLocation, 200000, 200000);
// 200000 meter is approximately 1.8 degree
[self.mapView setRegion:[self.mapView regionThatFits:viewRegion] animated:NO];

哦,是的,对不起,我在帖子里说得更清楚了。当你捏着放大或缩小时,效果很好。我只是无法将地图视图初始化为我想要的范围。是的。我说的不是收缩到缩放,而是设置区域。我有一个动画,我每秒多次设置区域-一个带有轻微曲线的自定义放大-在模拟器上,它每50次左右更新只更改一次缩放,但在设备上它总是更新缩放。哦!我明白你的意思,是的,我明天再查。谢谢你的提示!不,在真实设备上测试没有帮助。贴图区域仍然会定量地调整大小,而不是平滑地调整大小。