如何在mkmapview上显示多个位置点

时间:2014-10-05 19:36:32

标签: ios objective-c annotations mkmapview mkannotationview

如何在mkmapview上获取多个位置定位点。

在我当前的位置我看到我的朋友在我这里注册。

我有位置纬度和经度值。

以下是用于理解的虚拟值。

{
friendA:
{
latitude: "12.1234";
longtitude: "12.1234";
},

friendB:
{
latitude: "12.1234";
longtitude: "12.1234";
},

friendD:
{
latitude: "12.1234";
longtitude: "12.1234";
}

}

想要在mapView上显示我所有朋友的位置 使用PinPointer放置 Marker.png

//创建了mapview。

mapView = [[MKMapView alloc] init];
mapView.frame = CGRectMake(0, 0, self.view.frame.size.width, self.view.frame.size.height-60);
mapView.delegate = self;
mapView.mapType = MKMapTypeStandard;
mapView.showsUserLocation = YES;
[self.view addSubview:mapView];

MKAnnotation MarkerPin指针

- (MKAnnotationView *)mapView:(MKMapView *)map viewForAnnotation:(id <MKAnnotation>)annotation
{
    static NSString *AnnotationViewID = @"annotationView";

    MKAnnotationView *annotationView = (MKAnnotationView *)[mapView dequeueReusableAnnotationViewWithIdentifier:AnnotationViewID];

    if (annotationView == nil){
        annotationView = [[MKAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:AnnotationViewID];
    }

    annotationView.image = [UIImage imageNamed:@"Marker.png"];
    annotationView.annotation = annotation;

    return annotationView;
}

1 个答案:

答案 0 :(得分:0)

你需要循环你的朋友(你把它们存储在一个数组或其他东西吗?)然后为每个项目调用addAnnotation

类似的东西:

for (Friend *friend in friends){
   CLLocationCoordinate2D coordinate;
   coordinate.latitude = latitude.doubleValue;
   coordinate.longitude = longitude.doubleValue;
   MKPointAnnotation *myAnnotation = [[MKPointAnnotation alloc] init];
   myAnnotation.coordinate = coordinate;
   [mapView addAnnotation:annotation];
}

然后,自动调用已实现的方法mapView:viewForAnnotation:并添加注释。有关详细信息,请查看本教程:http://www.devfright.com/mkpointannotation-tutorial/