Pour dessiner un polygone sur la carte google avec le cadre MapKit

voix
5

Je voulais afficher Google map dans une vue carte sur laquelle je veux dessiner un polygone / cercle.

Aucun conseil?

Créé 26/08/2009 à 12:42
source utilisateur
Dans d'autres langues...                            


2 réponses

voix
6

La façon dont je lis votre question est que vous voulez programme dessiner le polygone sur la carte. Pour cela, consultez les documents d' Apple sur MapKit.

Vous n'avez pas besoin d'ajouter des vues transparentes sur la carte de MapKit ( MKMapView). Vous créez un overlay objet, dans ce cas , un MKPolygon. (dans l'exemple suivant, la variable mapsera l' MKMapViewinstance appartenant au contrôleur de vue que vous mettez ce code dans):

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];

Ensuite, si vous voulez personnaliser l'apparence (couleurs, temps, etc.) de la superposition, vous mettre en œuvre le MKMapViewDelegateprotocole dans le contrôleur de vue que vous avez propriétaire de l' MKMapViewobjet et de fournir une implémentation 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;
}

Bien sûr, rappelez - vous toujours d'attribuer effectivement le délégué de l' instance de carte à votre contrôleur de vue (MKMapViewDelegate), que ce soit dans le générateur d'interface, ou dans le code (par exemple viewDidLoad).

Créé 15/05/2012 à 08:00
source utilisateur

voix
1

Je idées de cette personne de blog à cette fin. Il consiste essentiellement à ajouter une vue transparente sur la carte. La carte vous permet ensuite de convertir les emplacements des points sur la vue. Faites-moi savoir si le site ne vous aide pas et je peux essayer de déterrer un exemple de mon code.

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

Créé 14/10/2009 à 20:59
source utilisateur

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