Para dibujar un polígono en el mapa de Google con el marco de MapKit

votos
5

Quería mostrar el mapa de Google en una vista de mapa en la que quiero dibujar un polígono / círculo.

¿Algún consejo?

Publicado el 26/08/2009 a las 12:42
fuente por usuario
En otros idiomas...                            


2 respuestas

votos
6

La forma en que estoy leyendo su pregunta es que desea mediante programación dibujar el polígono en el mapa. Para ello, consulte los documentos de Apple en MapKit.

No es necesario añadir vistas transparentes sobre el mapa MapKit ( MKMapView). Se crea una superposición de objetos, en este caso una MKPolygon. (en el ejemplo siguiente, la variable mapserá la MKMapViewinstancia de propiedad del controlador de vista que se pone este código en):

CLLocationCoordinate2D  points[4];

points[0] = CLLocationCoordinate2DMake(41.000512, -109.050116);
points[1] = CLLocationCoordinate2DMake(41.002371, -102.052066);
points[2] = CLLocationCoordinate2DMake(36.993076, -102.041981);
points[3] = CLLocationCoordinate2DMake(36.99892, -109.045267);

MKPolygon* poly = [MKPolygon polygonWithCoordinates:points count:4];
poly.title = @"Colorado";

[map addOverlay:poly];

Entonces, si desea personalizar el aspecto (color, movimiento, etc.) de la superposición, implementar el MKMapViewDelegateprotocolo en el controlador de vista que se tiene al que pertenece el MKMapViewobjeto y proporcionar una implementación de mapView:viewForOverlay:

- (MKOverlayView *)mapView:(MKMapView *)mapView viewForOverlay:(id <MKOverlay>)overlay
{
    if ([overlay isKindOfClass:[MKPolygon class]])
    {
        MKPolygonView* aView = [[[MKPolygonView alloc] initWithPolygon:(MKPolygon*)overlay] autorelease];

        aView.fillColor = [[UIColor cyanColor] colorWithAlphaComponent:0.2];
        aView.strokeColor = [[UIColor blueColor] colorWithAlphaComponent:0.7];
        aView.lineWidth = 3;

        return aView;
    }

    return nil;
}

Por supuesto, siempre se acuerdan de asignar realidad delegado de la instancia mapa a su controlador de vista (MKMapViewDelegate), ya sea en el constructor de interfaces, o en el código (por ejemplo viewDidLoad).

Respondida el 15/05/2012 a las 08:00
fuente por usuario

votos
1

Usé ideas de esta publicación de blog de personas para lograr esto. Básicamente implica agregar una vista transparente sobre el mapa. El mapa luego le permite convertir ubicaciones a puntos en la vista. Avíseme si el sitio no lo ayuda y puedo intentar extraer un ejemplo de mi código.

http://spitzkoff.com/craig/?p=65

Respondida el 14/10/2009 a las 20:59
fuente por usuario

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