2011-12-29 95 views
2

我用下面的代码来显示用户的位置,从地图中心:缩放级别限制了我的谷歌地图iOS应用

... 
// start off by default current position 
AppManager *appManager = [AppManager sharedManager]; 
MKCoordinateRegion newRegion; 
newRegion.center.latitude = [appManager.currentlatitude floatValue]; 
newRegion.center.longitude = [appManager.currentlongitude floatValue]; 
newRegion.span.latitudeDelta = 0.06; 
newRegion.span.longitudeDelta = 0.06; 
[self.mapView setRegion:newRegion animated:YES]; 
[self.view insertSubview:mapView atIndex:0]; 
... 

的事情是,我不管理播放时降低缩放级别不够用“newRegion.span.latitudeDelta”和“newRegion.span.longitudeDelta”值。当我想要有几百个时,变焦只显示一个宽度为30公里的区域。

对于我所看到的,经度的值为0.06应该显示180度(地球的一半)(对于纬度0),那么对于43的纬度,我认为我应该看到超过30公里。

有什么想法?

回答

7

latitudeDeltalongitudeDelta因此0.06的值是以km为单位的相对小的距离。要显示“地球的一半”,您必须将longitudeDelta设置为180.0。

如果你知道的距离(如公里)。要显示,这将是更容易使用,而不是试图自己做转换MKCoordinateRegionMakeWithDistance功能:

CLLocationCoordinate2D newCenter = 
    CLLocationCoordinate2DMake([appManager.currentlatitude floatValue], 
           [appManager.currentlongitude floatValue]); 

MKCoordinateRegion newRegion = 
    MKCoordinateRegionMakeWithDistance(newCenter, 200000, 200000); 

最后两个参数是latitudinalMeterslongitudinalMeters所以上面的例子将跨度设置为200公里×200公里。

记住地图视图将根据需要根据地图视图的比例和可显示的缩放级别调整区域。

+0

不错,我只是想知道如何做到这一点。 – markhunte 2011-12-29 15:15:42

+0

@ anna-karenina很棒,正是我需要的。非常感谢。 – Luc 2011-12-30 14:29:18

相关问题