我在做mapview。在我的应用程序中,有代码以纬度和经度获取用户的当前位置。使用此坐标我正在创建一个soap请求。作为回应,我将获得位置的信息(拉链,城市,州,国家,坐标)。我已将此信息保存在NSDictionary中。
这是创建注释的代码。
MapLocation *annotation = [[MapLocation alloc] initWithCoordinate:location ownerInst:ownerInstitution];
[mapView addAnnotation:annotation];
[annotation release];
- (MKAnnotationView *) mapView:(MKMapView *)theMapView viewForAnnotation:(id <MKAnnotation>) annotation {
MKPinAnnotationView *annView=[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@"currentloc"];
annView.pinColor = MKPinAnnotationColorGreen;
annView.animatesDrop=TRUE;
annView.canShowCallout = YES;
UIButton *infoButton = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
[infoButton addTarget:self action:@selector(infoButtonPressed) forControlEvents:UIControlEventTouchUpInside];
annView.rightCalloutAccessoryView = infoButton;
annView.calloutOffset = CGPointMake(-5, 5);
return annView;
}
当用户点击标注中的detaildisclosurebutton时,这是委托方法。
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
点击详细信息显示按钮将加载新视图。在这个新视图中,我将显示从服务器检索到的信息。
到目前为止一切都很好。我在地图中有多个注释。但是,当特定注释被挖掘时,我将如何实现代码以显示与该注释相关的信息(我从服务器获得)。
我希望我能清楚地表达我的问题。随意询问更多细节。
答案 0 :(得分:0)
您从委托方法获得的MKAnnotationView *view
包含注释。您可以将所有信息存储在需要显示的MapLocation类中。
MapLocation *annotation = [[MapLocation alloc] initWithCoordinate:location ownerInst:ownerInstitution];
[mapView addAnnotation:annotation];
[mapView addAdditionalCustomInformation: SomeInfo]; //you need to write your custom methods for that ;)
[annotation release];