2009/11/20

[Objective-C][iPhone sdk][google maps]特定の住所を地図上に表示する

ちょっとぐぐってみてわかったのですが、ほとんどの記事は、現在位置を地図上に表示する方法について書いてありましたが、任意の場所(所定の好きな場所)を地図上に表示する方法はなかったので、実装してみることにしました。

この場合、重要となるのは表示したい場所の経度と緯度がわかること。

今回の例として、「六本木ヒルズ」を地図上で表示するとします。

すっげー前の記事に住所から経度と緯度を取得するサイトを紹介したので、そこで、「六本木ヒルズ」と打ち込んで検索を行います。

すると、経度と緯度が表示されるので、それをどこかにメモしておきます。
(検索したときは、緯度:35.455006、経度:139.729548と表示されました。)

そこで、メモした内容をふまえて以下のように実装します。


/* googleの地図をコールするクラスを作成し初期化を行う(インスタンス変数) *
MKMapView *mapview = [[MKMapView alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];

/*
地図をどのぐらい拡大させるか設定を行う(MKCoordinateSpanは構造体で、
MKCoordinateSpanMakeをコールすればオッケー♪)
*/
MKCoordinateSpan CoordinateSpan = MKCoordinateSpanMake(0.005,0.005);
/* ど真ん中の座標を設定(35.660262と139.729548はさっきメモしたもの) */
CLLocation *location = [[CLLocation alloc] initWithLatitude:35.660262 longitude:139.729548];

/* CLLocationCoordinate2Dも構造体なんだけど、こちらはプロパティを使えば楽勝 */
CLLocationCoordinate2D mapCenter = location.coordinate;

/*
CLLocationCoordinate2DとMKCoordinateSpanを
MKCoordinateRegionMakeでMKCoordinateRegionとしてドッキング
*/
MKCoordinateRegion CoordinateRegion = MKCoordinateRegionMake(mapCenter,CoordinateSpan);

/* 地図を表示しまーす(アニメーションも、もちろんYES) */
[mapview setRegion:CoordinateRegion animated:YES];

/* だけど大本のwindowに貼付けないと表示されないので、お約束で追加 */
[window addSubview:mapview];
[window makeKeyAndVisible];

で、この実行結果は、、、
Photobucket
キター表示できたぞ!!

これでどこでも好きな場所をしょっぱなから表示することができます。

なんて便利なんだ♪

3 件のコメント:

  1. はじめまして

    MapKitで特定の場所を表示する方法を探していたら
    ここにたどりつきました。

    ただ、まだ開発をはじめたばかりでよくわかりません。。
    もしよろしければ上記の部分の実装ファイルなどを見せていただくことは可能でしょうか?

    よろしくお願いしまうs。

    返信削除
  2. もうファイルがないのですが、MapKitフレームワークのインクルードを行い、上のプログラムを●●Delegate.mの中に記述すれば地図が表示されると思います。インクルードの方法などはぐぐってみてください。

    返信削除
  3. MapKitフレームワーク以外にも、いくつかインクルードすべきフレームワークがあるかも知れませんので、気をつけてください。

    返信削除