2012-02-24 37 views
0

我正在使用以下代码在地图MKMapView上进行缩小。MKCoordinateRegion不以正确的方式显示在地图上

float zoom=1.5; 
MKCoordinateRegion region; 
//Set Zoom level using Span 
MKCoordinateSpan span; 
region.center=mapView.region.center; 
span.latitudeDelta=mapView.region.span.latitudeDelta *zoom; 
span.longitudeDelta=mapView.region.span.longitudeDelta *zoom; 
region.span=span; 
[mapView setRegion:region animated:TRUE]; 

但是在当变焦= 1.1,变焦= 1.3,或变焦= 1.5,在地图显示中的所有3例相同regian的情况。这个区域看起来与zoom = 2时相同。

如何显示地图,以便在这些情况下显示正确的地区?

+0

请参阅[这个答案](http://stackoverflow.com/a/4800042/467105) – Anna 2012-02-24 12:26:34

+0

谢谢!这个问题和我的一样。 – Michael1230661 2012-02-24 12:56:52

回答

1

试试这个....

region.span.longitudeDelta = 0.01f; 
region.span.latitudeDelta = 0.01f; 
[mapView setRegion:region animated:YES]; 

您可以设置span.longitudeDeltaspan.latitudeDelta为u多少要放大或缩小... 并且还初始化MKCoordinateRegion ..

MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } } 

委托设为MapView的

[mapView setDelegate:self]; 
+0

MKCoordinateRegion region = {{0.0,0.0},{0.0,0.0}}; region.center = mapView.region.center; float f1 = mapView.region.span.latitudeDelta; float f2 = mapView.region.span.longitudeDelta; f1 = f1 * 1.1; f2 = f2 * 1.1; region.span.latitudeDelta = f1; region.span.longitudeDelta = f2; [mapView setRegion:region animated:TRUE]; – Michael1230661 2012-02-24 12:34:06

+0

你的意思是我需要写这段代码吗?在这种情况下将是相同的情况,所以它没有帮助。在我的情况下,“自我”已经是mapView的代表。 – Michael1230661 2012-02-24 12:35:22

1

试试这个

MKCoordinateSpan span; 
//You can set span for how much Zoom to be display 
span.latitudeDelta=.005; 
span.longitudeDelta=.005; 

//set Region to be display on MKMapView 
MKCoordinateRegion cordinateRegion; 
cordinateRegion.center=latAndLongLocation.coordinate; 
//latAndLongLocation coordinates to be display 
cordinateRegion.span=span; 

[mapView setRegion:cordinateRegion animated:YES]; 
//mapView MkMapView 

它肯定会工作。