Om veelhoek op google kaart met MapKit kader tekenen

stemmen
5

Ik wilde Google kaart weer te geven in een kaartweergave, waarop ik wil een polygoon / cirkel te tekenen.

Enig advies?

De vraag is gesteld op 26/08/2009 om 12:42
bron van user
In andere talen...                            


2 antwoorden

stemmen
6

De manier waarop ik ben het lezen van uw vraag is dat u wilt programmatisch trekken de veelhoek op de kaart. Voor deze, raadpleeg de Apple docs op MapKit.

Je hoeft niet te transparant uitzicht over de MapKit kaart toe ( MKMapView). U maakt een overlay object, in dit geval een MKPolygon. (in het volgende voorbeeld, de variabele mapzal worden MKMapViewexemplaar waarvan de weergave controller die u zet deze code):

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

Dan, als je wilt het uiterlijk (kleuren, beroerte, enz.) Van de overlay aan te passen, je de uitvoering van het MKMapViewDelegateprotocol in de weergave controller heb je dat eigenaar is van het MKMapViewobject en zorgen voor een implementatie van 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;
}

Natuurlijk, altijd onthouden om delegate de kaart instantie daadwerkelijk toe te wijzen aan de weergave controller (MKMapViewDelegate), hetzij in de Interface Builder, of in de code (bijvoorbeeld viewDidLoad).

antwoordde op 15/05/2012 om 08:00
bron van user

stemmen
1

Ik gebruikte ideeën van deze personen blog post om dit te bereiken. Het in feite gaat om het toevoegen van een transparant beeld over de kaart. De kaart laat dan u locaties om te zetten in punten op het uitzicht. Laat me weten als de site die u niet helpt en ik kan proberen en graven van een voorbeeld uit mijn code.

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

antwoordde op 14/10/2009 om 20:59
bron van user

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