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

时间:2013-02-07 20:28:20

标签: ios mkmapview

我正在使用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];

这是我的应用

enter image description here

这很好,除了我的应用程序,我需要将它缩小一点点。但是当我尝试这个时:

viewRegion.span = MKCoordinateSpanMake(1.8, 1.8);   // use span of 1.8, not 1.7

我明白了:

enter image description here

它缩小了出路。如果我查看MKMapView的区域,latitudeDelta i 3.54981和longitudeDelta是3.51562。

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

注意:mapview捏缩放到我想要的任何范围。

2 个答案:

答案 0 :(得分:1)

MKCoordinateSpanMake使用度数,1度约69英里。如果您想要更细粒度的设置,请改用MKCoordinateRegionMakeWithDistance。

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];

答案 1 :(得分:0)

您是否尝试过该设备?有时我对设备上的缩放级别的控制比对模拟器的控制更多。