使用Blue Marble Drop在Google / Apple地图上显示多个用户位置

时间:2012-10-18 08:32:47

标签: iphone ios google-maps ios5 mapkit

所以我需要做的是,我需要在地图上显示默认蓝色大理石掉落的两个用户位置。

任务是,用户-A将每隔5-10秒将当前位置坐标上传到网络服务器,从那里用户-B将每隔5-10秒拉一个位置。因此,在MKMapView上,User-B将使用默认的位置注释显示自己的当前位置,但我还需要在User-B的mapView上显示User-A的位置并附带一些注释。

现在我无法使用Pin Annotation,因为该位置将每5-10秒更新一次。必须为第二个用户的拉出位置显示默认用户注释(蓝色大理石掉落),以便用户可以获得第二个用户的位置不是静态的,而是在移动中。 Pin Annotation表示该位置是静态的。

我怎样才能实现这一目标?

1 个答案:

答案 0 :(得分:1)

-(void)updateLocation
{// this will update your location
    NSString *latitude = @"0.0";
    NSString *longitude=@"0.0";
    MyAnnotation *ann = [[MyAnnotation alloc] initWithLatitude:latitude Longitude:longitude];
    [self.theMapView removeAnnotations:[self.theMapView annotations]];
    [self.theMapView performSelectorOnMainThread:@selector(addAnnotation:) withObject:ann waitUntilDone:YES];

    MKCoordinateRegion region = MKCoordinateRegionMake(CLLocationCoordinate2DMake(0.0, 0.0), MKCoordinateSpanMake(0.1f, 0.1f));
    [self.theMapView setRegion:region];

}

- (MKAnnotationView *) mapView:(MKMapView *)mapView1 viewForAnnotation:(id <MKAnnotation>) annotation{

    // if it's the user location, just return nil.
    if ([annotation isKindOfClass:[MKUserLocation class]])
        return nil;
    // try to dequeue an existing pin view first
    static NSString* AnnotationIdentifier = @"AnnotationIdentifier";
    MKAnnotationView *pinView = [[MKAnnotationView alloc]
                                  initWithAnnotation:annotation reuseIdentifier:AnnotationIdentifier];
    pinView.image = [UIImage imageNamed:@"BlueMarbleDrop"];

    pinView.annotation = annotation;
    return pinView;
}

Here is the BlueMarbleDrop.png