请一些机构给我一些想法,我是mapview应用程序的新手。
我需要显示地图,当我的应用程序加载时,它将在此地图中显示一个地图,它将显示一些图标必须是动态的图标,并且必须执行一些操作,因为我们认为我们必须在地图上显示动态按钮使用此按钮查看并执行不同的操作。
如果5个图标来自服务器,它将在地图中显示5个图标(图标必须动态来自服务器并在谷歌地图中显示)。
答案 0 :(得分:0)
您可以将MKPlacemark用作“按钮”
首先从服务器获取位置
- (void)addAnnotations:(CLLocationCoordinate2D)coordinate {
// Pin 1
CLLocationCoordinate2D coordinate1 = {
x.x, y.y
};
NSDictionary *address = [NSDictionary dictionaryWithObjectsAndKeys:@"Pin 1", @"Country", @"1", @"Thoroughfare", nil];
MKPlacemark *pin = [[MKPlacemark alloc] initWithCoordinate:coordinate1 addressDictionary:address];
[mapView addAnnotation:pin];
将其标注设置为按钮以执行某些操作
- (MKAnnotationView *) mapView: (MKMapView *) mapView viewForAnnotation: (id<MKAnnotation>) annotation
{
MKPlacemark *placemark = annotation;
MKPinAnnotationView *pin = (MKPinAnnotationView *) [self.mapView dequeueReusableAnnotationViewWithIdentifier: @"asdf"];
if (pin == nil)
{
pin = [[[MKPinAnnotationView alloc] initWithAnnotation: annotation reuseIdentifier: @"asdf"] autorelease];
}
else
{
pin.annotation = annotation;
}
pin.canShowCallout = YES;
pin.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
还可以将引脚图像设置为您喜欢的任何内容,因此引脚看起来像一个按钮
pin.image = [UIImage imageNamed:@"some-pic.png"];
告诉它该怎么做
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control;{
//code whatever should be done