[GPS]GPSと地図の基本

2011/11/03

GPSを利用するには CoreLocation.framework 、地図を利用するには MapKit.fraework が必要。

地図の追加と GPS の更新

@interface FirstViewController : UIViewController
<
CLLocationManagerDelegate,
MKMapViewDelegate
>
{
    MKMapView *mapview;
   CLLocationManager *locationManager;
}

@end
- (void)viewDidLoad {
    [super viewDidLoad];
    mapview = [[MKMapView alloc] initWithFrame:self.view.bounds];
    [self.view addSubview:mapview];
    locationManager = [[CLLocationManager alloc] init];
    if ([locationManager locationServicesEnabled]) {
        locationManager.delegate = self;
        locationManager.distanceFilter = kCLDistanceFilterNone;
        locationManager.desiredAccuracy = kCLLocationAccuracyBest;
        [locationManager startUpdatingLocation];
    } 
}

CLLocationAccuracy

CLLocationAccuracy はGPS の精度に関わる設定

extern const CLLocationAccuracy kCLLocationAccuracyBestForNavigation __OSX_AVAILABLE_STARTING(__MAC_10_7,__IPHONE_4_0);
extern const CLLocationAccuracy kCLLocationAccuracyBest;
extern const CLLocationAccuracy kCLLocationAccuracyNearestTenMeters;
extern const CLLocationAccuracy kCLLocationAccuracyHundredMeters;
extern const CLLocationAccuracy kCLLocationAccuracyKilometer;
extern const CLLocationAccuracy kCLLocationAccuracyThreeKilometers;

直訳すればそのままなので、特に説明するまでもないです。

話がそれるけど、こういった基本処理を Titanium ではラッパーして JavaScript で操作できるようにしているので、Titanium で作成した方が効率がよい部分が多い。 ピンをつけたり、delegate 使わずして 位置情報とったりなどなど、数行で取得できる。

ただ、本質を知る上では最低限の事はしっておくべきかと思います。