Google Maps for iOSがついに公開されました.
iOS6を利用していた方は待ちに待った日なのではないでしょうか.
さらにGoogleは,他のアプリからGoogle Mapsを利用できるようにしてくれています.
URLスキームを利用する方法と,SDKを利用する方法です.
URLスキームを利用してGoogle Mapsを利用するのは比較的簡単です.
ここに書いてありますが,ざっくりと説明します.
まず,URLスキームでGoogle Mapsを利用するためには,当然自分の端末にGoogle Mapsが入っていないといけません.ですので,
[[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"comgooglemaps://"]];
というコードで,URLスキームが利用可能かをチェックします.利用可能な時のみ,処理を続けるということになります.
URLスキームで利用できるGoogle Mapsの機能は,
・地図機能
・検索機能
・ナビ機能
の3つです.
まず,地図機能ですが,地図機能では以下のパラメタを設定します.
zoom: マップのズームレベルを規定します.
center: マップの中心を規定します.緯度,経度の順で指定します.
mapmode: 通常のビューの場合はstandardを,ストリートビューの場合はstreetviewを指定します.
views: 特定のビュー(satellite,traffic,transit)のon/offを指定します.
たとえば,
if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"comgooglemaps://"]]){ NSString *stringURL = @"comgooglemaps://?center=34.68444,135.827415&zoom=14&views=traffic"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url]; }
というコードを埋め込めば,自分のアプリ内で
このように,Google Mapsを開くことができます.
検索を行うには,qパラメータを使います.
if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"comgooglemaps://"]]){ NSString *stringURL = @"comgooglemaps://?q=%e9%a7%85¢er=34.68444,135.827415&zoom=14&views=traffic"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url]; }
クエリは適切にURLエンコードされている必要があります.上記の例は,「駅」というクエリをURLエンコードしています.
こんな感じです.
最後に,ナビゲーションです.ナビゲーションは以下のパラメタで規定されます.
saddr: 始点を指定します.緯度経度で指定することも可能ですし,適切にフォーマットされた文字でも可能です.
daddr: 終点を指定します.
directionsmode: 移動手段を指定します.driving,transit,walkingです.
例えば,「近鉄奈良駅」を始点,「新宿駅」を終点,移動手段を電車と指定すると,
if([[UIApplication sharedApplication] canOpenURL:[NSURL URLWithString:@"comgooglemaps://"]]){ NSString *stringURL = @"comgooglemaps://?saddr=%e8%bf%91%e9%89%84%e5%a5%88%e8%89%af%e9%a7%85&daddr=%e6%96%b0%e5%ae%bf%e9%a7%85&directionsmode=transit"; NSURL *url = [NSURL URLWithString:stringURL]; [[UIApplication sharedApplication] openURL:url]; }
このような結果になります.
SDKを使うよりもはるかに楽ですが,ユーザがGoogle Mapsを入れているか否かに依存してしまうのが難点ですね.