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?
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?
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).
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.