2012-04-12 8 views
1

マップを表示すると、ユーザーの位置を中央に表示したいと考えています。ユーザーの周り5kの距離。次のように私のコードは次のとおりです。iOS5:MKMapViewの領域を設定すると、青色のボックスが表示されます。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    mapView.mapType = MKMapTypeStandard; 
    mapView.showsUserLocation = YES; 
    MKUserLocation *userLocation = mapView.userLocation; 
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(
          userLocation.location.coordinate, 5000, 5000); 
    [mapView setRegion:region animated:NO]; 
} 

結果はsetRegionへの呼び出し後マップは今スクロールやズームすることができない、空の青のボックスとして表示されていることです。私はしばらくそれが海を表示しているかもしれないと思ったが、マップ自体がスクロールしないので、そうではないようだ。私は50mから25000mまでの距離を同じ効果で設定しようとしました。 と表示されない場合は、setRegionと表示され、ズームアウトされた世界地図が正常に表示され、ユーザーの場所が予想どおりに強調表示されます。

MKCoordinateRegion adjustedRegion = [mapView regionThatFits:region]; 

と、次のようにsetRegionメッセージを交換する:

私も次の行を挿入しようとした。この上でいくつかの関連の質問を閲覧した後

[mapView setRegion:adjustedRegion animated:NO]; 

をしかし、それはちょうど私と同じ結果になります。

私は間違っていますか?

+0

これをフォローアップして、 'が作成されています.0,0を中心に約5,000 x 5000mのスパンを渡しています。また、' adjustedRegion'は7500m x 5900mのスパンで終わります。しかし、単純に '[mapView setCentreCoordinate:userLocation.location.coordinate];とすれば、世界地図はうまく表示されますが、青い点がカリフォルニアの左端と右上にあります。面白かったけど、0,0はイギリスのグリニッジよりも上だと思った。 –

+0

グリニッジは経度0度です。その後、赤道まで直進して0度の緯度になります。アフリカの海岸から(0,0)離れて青い海がたくさん見えます – Craig

答えて

1

mapViewが有効な場所を取得するのを待っていません。コントローラをmapViewの代理人に設定してから、マップビューにshowUserLocationと言うと、最終的にはデバイスの座標を持つ- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocationというコールバックが返されます。あなたがズームできない、またはパンすることができないと思う理由が疑わしいのは、(0,0)が海に浮かぶ、すべてが青いことです。 MKMapViewがピンチやズームなどのタッチ操作を許可するように設定されていない可能性もありますので、xibにすべてのチェックボックスがオンになっていることを確認してください。

関連する問題