Google Maps SDK for iOS Ver.1.3.0 触ってみました (今度のはiOS 5.1でも動きます)
2012/06/22追記
Google Maps SDK for iOS Ver.1.3.1 がリリースされていたので触ってみました。1.3.1はインターフェースに変更は無いようです。
I/OのAndroid関連を追うだけでもヒーヒー言ってるのに、なんとなくチェックしたら iOS版も1.3.0 になってました…
とにかく nativeの Google Mapsネタは追っておきたいところですので、さらっと目を通してみました。
リリースノート
インターフェースに大きな変更はなさそうです
追加機能
- カスタムタイルのためのGMSTileLayerをサポート (Android版には最初からありました)
- GMSPolylineとGMSPolygonの線にアンチエイリアスかけるようにした
- 地図の種類にkGMSTypeNoneを追加 (GMSTileLayerのためですね)
- GMSMapLayerで CAAnimationGroupをサポート (それは使ったことがないのでわかりません。ごめんなさい。アニメーションをまとめて管理するので速いってことでしょうか?)
改善
- 大量のオーバーレイを使ったときのパフォーマンスを改善
- info window表示中のデバイスのロック/アンロック時に、過剰にメモリを消費する現象を解決
- ユーザーのジェスチャ操作時にはアニメーションが停止される
- アニメーションでは、アクティブなジェスチャーは停止する
- 現在地のドットのセット/クリアする時にクラッシュする問題を修正
- GMSPolylineとGMSPolygonはより高い精度と拡大をサポート
- GMSPolylineとGMSPolygonは正しい透過率をサポート
- GMSMapViewはスクロールビュー内での使用が可能となった
デモアプリ
1.2.1のデモプリに Tile Overlayが追加されています
Tile Overlay
モスコーンセンター(I/OやWWDCが行われる場所)の建物のフロアマップ(1F〜3F)をGMSTileLayerとして表示するデモ。単なるPolygonや画像のOverlayではない。
Developer Guideから抜粋
1.2.1の記事にもTileLayers(TileOverlay)の解説を追加しました
Tile Layers
TileLayers(Tile Overlayとも呼ばれる)は、基本の地図の上に重ね合わせての表示が可能。kGMSTypeNoneとの組み合わせなら、基本地図を置き換えたようにもみせられる。
Ground Overlayよりももっと広範囲に拡張の画像を貼り付けられるものと考えるとよい。
軸
タイルの横の列をX,縦の列をYととして、 (X,Y)でタイルを表す。左上が(0,0)のタイル。
タイルの数は 2N * 2Nとなり、N がそのままZoom levelとなる。(基本のマップと同様)
例えば、zoom level が 2の場合、 4 * 4 = 16枚のタイルで構成され、左上が(0,0), 右上が(3,0), 右下が(3,3)のタイルとなる。
一枚のタイルは 256x256 pointの正方形。
GMSURLTileLayer
URLによってタイルイメージを調達するTileLayer
GMSSyncTileLayer
UIImageからタイルイメージを調達するTileLayer
すごく重要! 5.1でも動く!
以前はPolygonのデモで落ちていたのですが、今回は大丈夫。
初代iPadでも試しましたが、とてもヌルサク動いてくれてます。
これでMapKitとはおさらばできる日がきました。やっとGoogle Maps SDK for iOSの時代到来といったところでしょうか。