2

我正在使用 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 我是 3.54981,longitudeDelta 是 3.51562。

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

注意:mapview 捏缩放到我想要的任何跨度都很好。

4

2 回答 2

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];
于 2013-05-03T23:10:41.140 回答
0

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

于 2013-02-07T22:32:51.047 回答