0

在 iPhone mapkit 中成功找到用户位置时是否会触发事件?

我想在将当前位置图钉放到地图上时调用 Web 服务。

4

2 回答 2

3

如果您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.

于 2009-11-19T21:17:41.457 回答
1

您需要创建 CLLocationManger 对象并调用startUpdatingLocation方法。一旦找到并更新了位置,CLLocationMangerDelegate 方法

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

会自动调用。您可以重新实现此方法并从此处调用您的 Web 服务。

于 2009-11-19T15:24:44.120 回答