Volevo visualizzare la mappa di Google in una vista mappa su cui voglio disegnare un poligono/cerchio.Per disegnare poligono su google map con il framework MapKit
Qualche consiglio?
Volevo visualizzare la mappa di Google in una vista mappa su cui voglio disegnare un poligono/cerchio.Per disegnare poligono su google map con il framework MapKit
Qualche consiglio?
Ho usato idee da questo post sul blog di persone per realizzare questo. Fondamentalmente implica l'aggiunta di una vista trasparente sulla mappa. La mappa ti consente quindi di convertire le posizioni in punti sulla vista. Fammi sapere se il sito non ti aiuta e posso provare a trovare un esempio dal mio codice.
Il modo in cui sto leggendo la tua domanda è che si desidera programmazione disegnare il poligono sulla mappa. Per questo, consulta lo Apple docs on MapKit.
Non è necessario aggiungere viste trasparenti sulla mappa MapKit (MKMapView
). Si crea un oggetto di sovrapposizione , in questo caso uno MKPolygon
. (Nell'esempio seguente, la variabile map
sarà la MKMapView
istanza di proprietà del controller della vista che si inserisce questo codice in):
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];
Poi, se si desidera personalizzare l'aspetto (colori, ictus, ecc) della sovrapposizione, è implementare il protocollo MKMapViewDelegate
nel controller della vista che avete che possiede l'oggetto MKMapView
e fornire un'implementazione di 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;
}
Naturalmente, ricordate sempre di assegnare in realtà la mappa istanza delegata al proprio controller di visualizzazione (MKMapViewDelegate), nel builder dell'interfaccia o nel codice (ad es. viewDidLoad
).
E, ovviamente, per i cerchi, si usa 'MKCircle' invece di' MKPolygon' – Nate