1

非常に基本的なことで立ち往生し、MKMapView を起動して、自分の場所にズームインしようとしました。

- (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocation {
self.mapView.centerCoordinate = self.mapView.userLocation.location.coordinate; }

このコードは機能していないようです。通常、場所を取得するのに少し時間がかかることを理解しています。運が良かったので、しばらくそのままにしておきました。ただし、場所は正しく表示されますが、これが中心ではありません (西アフリカのすぐそばのマップの真ん中に中心があります)。

また、viewDidLoad に次のコードがあります。これは、指定された高さにズームインするだけでなく、正しいように見えます。

MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(self.mapView.userLocation.coordinate, 20000, 20000);
[self.mapView setRegion:region animated:YES];

編集:1〜2回押してからマップを再表示した後、シミュレーターで動作しているようです。しかし、私のiPhoneではまだ動作しません。すべての位置情報サービスの設定を確認しましたが、すべてオンになっているようです。

4

3 に答える 3

1

次のコードを使用して、MapViewに表示される中心とスパンを設定します。動作するはずです。

MKCoordinateRegion region = {{0,0},{.5,.5}}; 
region.center.latitude = doubleLattitude;
region.center.longitude = doubleLongitude;
[mapView setRegion:region animated:YES]; 
于 2012-06-22T12:57:00.143 に答える
1

MKMapView の中心がガボンのすぐ西にある場合、オブジェクトの 1 つが nil である可能性が非常に高いため、座標は緯度 0° 経度 0° になります。デバッガーでブレークポイントを設定し、オブジェクトを分析することで、簡単にテストできます。

ここに画像の説明を入力

于 2013-03-17T23:37:26.227 に答える
0
self.mapView.centerCoordinate = self.mapView.userLocation.location.coordinate; 

ユーザーの位置を中心に地図を配置しません。 - (void)mapView:(MKMapView *)mapView didUpdateUserLocation:(MKUserLocation *)userLocationデバイスがユーザーの位置を取得したときに初めて呼び出されるため、より適切に使用できます -(void)locationManager:didUpdateToLocation: fromLocation:

- (void)locationManager:(CLLocationManager *)manager
        didUpdateToLocation:(CLLocation *)newLocation
               fromLocation:(CLLocation *)oldLocation {



    if(newLocation.horizontalAccuracy>0)
    {
    // set center of map (span will not be changed in this case)
    [mymap setCenterCoordinate:newLocation.coordinate animated:YES];

    // or use region to specify both span and center
    MKCoordinateRegion region.span.latitudeDelta = .05 ;
         region.span.longitudeDelta = .05 ;
         region.center.latitude = newLocation.coordinate.latitude ;
         region.center.longitude = newLocation.coordinate.longitude ;
            [mymap setRegion:region animated:TRUE];

    }
     }
于 2012-04-10T04:22:50.323 に答える