したがって、一意の CLLocateManager を使用するには、すべてのマップのデリゲートになるクラスを作成できます。
self.locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = self;
次のようにします。
self.locationManager = [[CLLocationManager alloc] init];
_locationManager.delegate = mySharedDelegate;
mySharedDelegate は、すべての CLLocationManager デリゲート メソッドを含むクラスです。
の最初の呼び出しの後、userLocation の有効な座標のみを取得できます。
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
このメソッドが呼び出されるのは、GPS が新しい場所を検出したためです。そのため、青い点がそこに移動し、userLocation に新しい座標が設定されます。
CLLocationManager デリゲートで次のメソッドを使用して、現在の場所が見つかったときにログに記録します。
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
{
NSLog(@"---------- locationManager didUpdateToLocation");
location=newLocation.coordinate;
NSLog(@"Location after calibration, user location (%f, %f)", _mapView.userLocation.coordinate.latitude, _mapView.userLocation.coordinate.longitude);
}
アイデアはありますか?
乾杯、
VFN