sos の 作業メモ

プログラミングや英会話学習、マイルや旅行、日常生活など。最近はWebFormなASP.NETのお守りがお仕事です。

日々の生活にhappyをプラスする|ハピタス Gポイント

Google Maps SDK for iOS Ver.1.2.1 後編 そしてSDKDemosのソースも読んでみたよ

2013/5/19

1.3.0でTileOverlayのデモが追加されたので、記事を一部修正しました。 1.3.0の記事はこちら

2013/4/27 追加

さっそく1.2.2がリリースされています。 記事はこちら


前回の続き

SDKについているSDKデモのソースをざっと眺めてみました。

デモの項目は1.1.2のサンプルよりandroid版のそれに近いかも?

あと、イントロダクションを良く読んでみたらSupported Platformsには

Applications that use the Google Maps SDK for iOS will work on iOS 5.1 and above.

なんて書いてありました。早速 5.1.1なiPhone4で試したところ、一応動きましたが…

-[UIDeviceRGBColor copyWithZone:]: unrecognized selector sent to instance 0xXXXXX

というエラーがPolygonsのサンプルで出て来てます。 MapViewにpolygonを追加する際にdeep copyするんだろうし、これはもうどうしようもなさげ。おとなしく 6.0以降で使う事にしましょう。

構造

全体の構造は、デモ一覧のTableViewとデモ画面の Master-Detail。 Samples.mの中で デモ用のタイトルと呼び出すViewControllerのクラスが定義されてます。

Basic Map

デフォルトのGMSMapViewがぺろんと貼ってあるだけのデモ。スクロール、ズーム、ティルト、回転と操作は可能なので、これだけでもちゃんとGoogleMapになってます。

- (void)viewDidLoad {
    [super viewDidLoad];
    GMSCameraPosition *camera = [GMSCameraPosition cameraWithLatitude:-33.868 longitude:151.2086 zoom:6];
    self.view = [GMSMapView mapWithFrame:CGRectZero camera:camera];
}

Map Types

UISegmentedControl でノーマル/ハイブリッド/衛星写真/地形図の4種類を切り替えるデモ

Traffic Layer

Basic Mapに、GMSMapView.trafficEnabled = YESを追加しただけのデモ。これだけで道路の混雑状況がレイヤー表示されます。

My Location

GPSなどで位置情報を取得し、それをマップの中心に表示し続けられるデモ。

コンパスとMyLocationボタンの表示をonにし、myLocationEnabled = YES、位置情報の更新のイベントをKVOパターンで取得する形になってます。

Gesture Control

ピンチによるズームジェスチャのon/offをプログラムから切り替えるデモ

Markers

プログラムでマーカーを表示するデモ

Custom Markers

ユーザーの操作を契機として、プログラムで動的に色違いのマーカーを追加するデモ

Marker Events

マーカーがタップされたときにカメラポジションをそこに移動させるのと、自前のViewでInfoWindowを表示させるデモ

Polygons

タップされたら塗りつぶし色を変更するポリゴンを表示するデモ

Polylines

ポリーラインを表示するデモ

Ground Overlays

地図上に画像をオーバーレイ表示するデモ

Tile Overlay

モスコーンセンター(I/OやWWDCが行われる場所)の建物のフロアマップ(1F〜3F)をGMSTileLayerとして表示するデモ。単なるPolygonや画像のOverlayではない。

Fit Bounds

指定された緯度経度の範囲を、画面におさまるように自動でカメラポジションを計算して表示するデモ

Camera Animation

NSTimerでカメラをグルグルと動かし続けるデモ。とても格好いい。

Map Layer

マップの上にCABasicAnimationのレイヤーをかぶせ、アニメーション表示でカメラ移動を行うデモ

Geocoder

マップ上のタップされた緯度経度からGeoCodingによって住所を問い合わせ、それをタイトルにしたマーカーを作成するデモ


1.2.1になって、android版よりコードがすっきりして書きやすくなった感じですね。

これで5.1でも動いてくれれば文句なしなのに…

あ、そうそう、WWDCですが、「purchaseボタンを押していたからチケットは確保されてるよ! 12時間以内に購入手続きの方法をメールするね!」とappleさんから連絡がきました。

なんとかなりそうですごく嬉しい!!