XCode的MapView (1)

如何建立一個地圖並自動移到我們想顯示的位置?
  1. 首先建立一個SingleView Project,然後加入兩個frameworks, MapKit.framework及CoreLocation.framework
  2. 在ViewController.h當中加入MapKit,並且新增variable來儲存MapView.
    #import <UIKit/UIKit.h>
    #import <MapKit/MapKit.h>

    @interface ViewController : UIViewController <MKMapViewDelegate>
    {
        MKMapView *mapView;
    }
    @property (nonatomic, retain) IBOutlet MKMapView *mapView;

    @end
  3. 打開ViewController.m,同步mapView並且於viewDidLoad時立即指定地圖顯示的位置
    #import "ViewController.h"
    @implementation ViewController

    @synthesize mapView;
    - (void)viewDidLoad
    {
        [super viewDidLoad];
        [self goLocation];
    }
    -(void)goLocation
    {
        MKCoordinateRegion newRegion;
        newRegion.center.latitude=22.299738;
        newRegion.center.longitude=114.177818;
        newRegion.span.latitudeDelta=0.0216;
        newRegion.span.longitudeDelta=0.018582;
        
        [self.mapView setRegion:newRegion animated:YES];
    }
  4. 開啟Storyboard,將Map View拉出,並將Map View連結到mapView.這時按下build and run,你就會看到地圖,並且地圖立即移動到我們指定的位置。

如何在地圖中為我們指定的地點加入指針?
  1. 在ViewController.h中加入一個method,叫addAnnotation,當我們的按鈕按下時,就執行動作,將指針加入到我們的地圖上.
    -(IBAction)addAnnotation;
  2. 接下來於ViewController.m編寫完整的addAnnotation.我們先設定加入指針的座標,然後再建立MKPointAnnotation,並傳入我們指定目標及按下指針時顯示的文字。
    -(IBAction)addAnnotation
    {
        mapView.mapType=MKMapTypeSatellite;

        CLLocationCoordinate2D coordinate;
        coordinate.latitude22.299738;
        coordinate.longitude114.177818;
        
        MKPointAnnotation *annotation = [[MKPointAnnotation alloc] init];
        [annotation setCoordinate:coordinate];
        [annotation setTitle:@"Some Title"];
        [self.mapview removeAnnotations:self.mapview.annotations];
        [self.mapview addAnnotation:annotation];
    }
  3. 最後我們打開storyboard,加入一個按鈕,並設定如按下按鈕就執行addAnnotation.

沒有留言: