2012-02-24 21 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を表示します。この領域は、ズーム= 2のときと同じように見えます。

これらの各ケースで正しい地域が表示されるように地図を表示するにはどうすればよいですか?

+0

[この回答を参照](http://stackoverflow.com/a/4800042/467105) – Anna

+0

ありがとう!この質問は私のものと同じです。 – Michael1230661

答えて

1

、このいずれかを試してみてください....

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

あなたはuは、アウトズームインまたはしたいどのくらいのよう... span.longitudeDeltaspan.latitudeDeltaを設定 もMKCoordinateRegionを初期化することができます。..

MKCoordinateRegion region = { {0.0, 0.0 }, { 0.0, 0.0 } } 
MapViewの

設定デリゲート

[mapView setDelegate:self]; 
+0

MKCoordinateRegion領域= {{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; f2 = f2 * 1.1; region.span.latitudeDelta = f1; region.span.longitudeDelta = f2; [mapView setRegion:地域アニメーション:TRUE]; – Michael1230661

+0

私はこのコードを書く必要があるのですか?この場合は同じ状況になるので、それは役に立ちません。私の場合、「self」はすでにmapViewのデリゲートです。 – Michael1230661

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 

間違いなく動作します。

関連する問題