在 iPhone mapkit 中成功找到用户位置时是否会触发事件?
我想在将当前位置图钉放到地图上时调用 Web 服务。
如果您MKMapView
自己显示用户的位置(以编程方式使用“ mapView.showsUserLocation = YES;
”或使用 IB 检查“显示用户位置”),则地图视图将viewForAnnotation
在引脚被放下时调用。您可以使用:
- (MKAnnotationView *)mapView:(MKMapView *)aMapView viewForAnnotation:(id <MKAnnotation>)annotation
{
if ([annotation isKindOfClass:MKUserLocation.class]) {
// Call web service here
return nil;
}
}
返回 nil 告诉地图视图使用其默认引脚作为用户位置(带有动画的蓝点)。不要忘记将控制器设置为MKMapViewDelegate
.
您需要创建 CLLocationManger 对象并调用startUpdatingLocation
方法。一旦找到并更新了位置,CLLocationMangerDelegate 方法
- (void)locationManager:(CLLocationManager *)manager didUpdateToLocation:(CLLocation *)newLocation fromLocation:(CLLocation *)oldLocation
会自动调用。您可以重新实现此方法并从此处调用您的 Web 服务。