GoogleMap_IOSはMapViewで地図釘を使用

4648 ワード

Link address:http://www.cnblogs.com/every2003/archive/2012/08/09/2631085.html
 
地図釘を使用するには、まず地図釘に注釈クラス(Annotation)を作成する必要があります.コードは次のとおりです.
@interface MyAnnotation: NSObject<MKAnnotation>



//   MKAnnotation   ,              ,      ,          。

-(void) setCoordinate:(CLLocationCoordinate2D)newCoordinate;

Annotationは,地図釘の位置だけでなく,地図釘の名称(property title)および副名称(property subtitle)も記録している.
@implementation MyAnnotation



//      

@synthesize coordinate;



//     title    

-(NSString*) title

{

    return "     ";

}



//     subtitle    

-(NSString*) subtitle

{

    return "     ";

}


このように、地図では、地図釘の選択をクリックすると、図のように表示されます.
Pin附注示意图
次に、地図釘を追加し、ページのViewControllerのviewDidLoad関数に次のコードを追加します.
-(void) viewDidLoad

{

    //



    MyAnnotation* annotation = [[MyAnnotation alloc] init];

    //        (   )

    [annotation setCoordinate:CLLocationCoordinate2DMake(32.632, 120.902)];

    //         ,m_mapView MKMapView     

    [m_mapView addAnnotation:m_annotation];

}


これまで、地図の注釈オブジェクトMyAnnotationを処理してきましたが、このオブジェクトは場所の位置、名前、私たちが望んでいるピンではありません.次は、スパイクが登場します.まず、ViewControllerにMKMapViewDelegateプロトコル(protocol)を実装させ、上のコードに地図釘を追加して呼び出される関数を実装する必要があります.
-(MKAnnotationView *)mapView:(MKMapView *)mapView viewForAnnotation:(id <MKAnnotation>)annotation

{

    static NSString* annotationID = @"MyLocation";

    if (![annotation isKindOfClass:[MyAnotation class]]) {

        return nil;

    }

    

    MKPinAnnotationView* pinView = (MKPinAnnotationView*) [mapView dequeueReusableAnnotationViewWithIdentifier:annotationID];

    if (pinView == nil) {

        //      ,MKPinAnnotationView  

        pinView = [[[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:annotationID] autorelease];

        pinView.animatesDrop = YES;    //               

        pinView.canShowCallout = YES;  //             

        pinView.draggable = YES;       //        

    }

    else {

        //         

        pinView.annotation = annotation;

    }

    

    return pinView;

}


地図に地図釘を追加することに成功しましたm_annotation.cordinate現在の地図釘の径緯度を取得します.その後、地理名(街、商店)や現在位置とのルートなどを入手し、後で紹介します.