【发布时间】:2009-11-19 15:17:26
【问题描述】:
在 iPhone 地图包中成功找到用户位置时是否会触发事件?
我想在当前位置图钉放到地图上时调用网络服务。
【问题讨论】:
在 iPhone 地图包中成功找到用户位置时是否会触发事件?
我想在当前位置图钉放到地图上时调用网络服务。
【问题讨论】:
如果您有 MKMapView 本身显示用户的位置(以编程方式使用“mapView.showsUserLocation = YES;”或通过 IB 检查“显示用户位置”),则地图视图将在 pin 时调用 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 服务。
【讨论】: