2009-08-26 13 views

cevap

1

Bunu gerçekleştirmek için bu kişilerin blog yazısından fikirler kullandım. Temel olarak harita üzerinde şeffaf bir görünüm eklemeyi içerir. Harita daha sonra yerleri görünümdeki noktalara dönüştürmenizi sağlar. Sitenin size yardımcı olmaması ve kodumdan bir örnek oluşturup deneyemeyeceğimi lütfen bana bildirin.

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

6

Sorunuzu okuyorum yolu programlı harita üzerinde çokgen çizmek istiyoruz olmasıdır. Bunun için Apple docs on MapKit.

'a bakın. MapKit haritası üzerinde şeffaf görünümler eklemeniz gerekmez (MKMapView). Bir bindirme nesnesi, bu durumda bir MKPolygon oluşturun. (Aşağıdaki örnekte, değişken map sen bu kodu koymak görünümü denetleyicisi tarafından sahip olunan MKMapView örneği olacaktır):

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

, sen görünümünü özelleştirmek isterseniz (renkler, inme, her zaman aslında haritayı atamak hatırlamak tabii

- (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; 
} 

: vs.) bindirme, bunu MKMapView nesnenin sahibi var görünümü kumandam MKMapViewDelegate protokolünü uygulamak ve mapView:viewForOverlay bir uygulamasını sağlamak Örneğin, arayüz oluşturucusunda veya kodda (ör., görüntü denetleyicinize (MKMapViewDelegate) delege koyun. viewDidLoad).

+0

Ve tabi ki, daireler için 'MKPolygon' yerine' MKCircle' kullanılır. – Nate

İlgili konular