2012-02-24 115 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 

它肯定會工作。