iPhone MapKit - actualiza las coordenadas de las anotaciones y el mapa

votos
2

Utilizo este tutorial para integrar MapKit a mi aplicación: http://iphonebcit.wordpress.com/iphone-map-kit-tutorial/

CLLocationCoordinate2D coordinate;
coordinate.latitude = 49.2802;
coordinate.longitude = -123.1182;

NSUInteger count = 1;
for(int i = 0; i < 10; i++) {
    CGFloat latDelta = rand()*.035/RAND_MAX - .02;
    CGFloat longDelta = rand()*.03/RAND_MAX - .015;

    CLLocationCoordinate2D newCoord = {coordinate.latitude+latDelta, coordinate.longitude+longDelta};
    MapDemoAnnotation* annotation = [[MapDemoAnnotation alloc] initWithCoordinate:newCoord andID:count++];
    [mapView addAnnotation:annotation];
    [annotation release];
}

y

- (MKAnnotationView *)mapView:(MKMapView *)mapViewLocal viewForAnnotation:(id <MKAnnotation>)annotation {
MKPinAnnotationView *pinView = (MKPinAnnotationView*)[mapViewLocal dequeueReusableAnnotationViewWithIdentifier:@Pin];
if(pinView == nil) {
    pinView = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:@Pin];
    pinView.pinColor = MKPinAnnotationColorPurple;
    pinView.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
    pinView.animatesDrop = YES;
    pinView.canShowCallout = YES;
} else {
    pinView.annotation = annotation;
}
return pinView;

}

Por lo tanto, los pines se establecerán en el mapa al azar. En mi aplicación, las coordenadas cambiarán. ¿Cómo puedo cambiar las coordenadas de las anotaciones para que se actualicen en el mapa?

¿Alguien sabe?

Publicado el 09/12/2009 a las 14:05
fuente por usuario
En otros idiomas...                            


3 respuestas

votos
2

En iPhone SDK 3.x usted tiene que quitar las anotaciones de pasador y configurarlo de nuevo. Eso no es muy agradable si usted tiene muchas anotaciones de un mapa.

Trato de hacer lo mejor, así que Ony pantalla / renovar mis anotaciones pines que están en la pantalla. Así que si un usuario de un zoom a Nueva York, no habrá anotaciones pin en San Francisco o que no sean el usuario no puede ver. Por lo que el rendimiento será mucho mejor.

Tal vez en el futuro esto sería posible. Eso espero :-)

Respondida el 08/02/2010 a las 13:25
fuente por usuario

votos
1

Desde que estoy haciendo anotaciones en el momento que acabo de hacer una prueba rápida. Te dan una advertencia del compilador, por lo que podrían no ser compatibles. Pero funciona.

Hacer una clase MKAnnotation personalizada para que pueda establecer la propiedad de coordenadas para poder escribir:

@property (nonatomic, readwrite) CLLocationCoordinate2D coordinate;

A continuación, en cualquier evento o intervalo que desee, cambiar la coordenada usando algo como esto:

    CLLocation *loc=[[CLLocation alloc] initWithLatitude:55.0 longitude:17.0];
annotation.coordinate=loc.coordinate;
[loc release];
Respondida el 18/05/2010 a las 13:01
fuente por usuario

votos
1

Ese tutorial es solo para mostrar una vista de mapa, nada más. Necesitarás un tutorial más grande. Encontré este útil:

http://blog.objectgraph.com/index.php/2009/04/02/iphone-sdk-30-playing-with-map-kit/

Probablemente lo que tendrá que hacer es recorrer todas las anotaciones en el mapa, eliminarlas, luego recorrer su matriz de datos y volver a agregar las anotaciones. Podría ser más inteligente al respecto y recorrer el conjunto de datos, verificando si ya hay un marcador con la misma latitud / longitud en el mapa, pero de esa manera se vuelve más complicado.

Respondida el 10/12/2009 a las 04:02
fuente por usuario

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more