iOSおよびAndroidでのMapsのリンクについて覚え書き

Mapsについてのメモ

今更ですが、Mapsへのリンクについて挙動確認をしたのでメモ。大体こんなHTMLでテストしてみてます。

<ul>
  <!-- 東京スカイツリーの座標 -->
  <li><a href="http://maps.google.com/maps?hl=ja&ll=35.709217,139.812398&spn=0.009914,0.021136&sll=35.710376,139.810649&sspn=0.004957,0.010568&gl=jp&t=m&z=16">lat, lng (maps.google.com)</a></li>
  <li><a href="http://maps.apple.com/maps?hl=ja&ll=35.709217,139.812398&spn=0.009914,0.021136&sll=35.710376,139.810649&sspn=0.004957,0.010568&gl=jp&t=m&z=16">lat, lng (maps.apple.com)</a></li>
  <!-- 東京タワー -->
  <li><a href="http://maps.google.com/maps?q=東京タワー">query (maps.google.com)</a></li>
  <li><a href="http://maps.apple.com/maps?q=東京タワー">query (maps.apple.com)</a></li>
</ul>

検証機は以下のとおり。

  • iOS 6.0 iPhone3GS
  • iOS 5.1.1 iPad (3rd Gen)
  • Android 4.0.3 (Xperia SX)

for iOS

Unlike some schemes, map URLs do not start with a “maps” scheme identifier. Instead, map links are specified as regular http links but are targeted at the Maps app

他のいくつかのスキームとは異なり、マップのURLはmapsスキームでは始まりません。代わりに通常のhttpリンクを指定していますが、これでMapsアプリがターゲットになります。(意訳)

なんかちょくちょく見かけていたmaps://って使われていないんですね。試してみると開けはしたりするようですが。

  • http://maps.google.comでiOS5以前だとMapsアプリが反応する
  • http://maps.google.comでiOS6以降だとGoogle Mapsにリンクされる(ブラウザの普通なリンク動作)
  • http://maps.apple.comでMapsアプリが反応する

上記のURLにあるドキュメントの下部を見ると分かりますが、maps.apple.comはパラメータの多くをGoogle Mapsと互換させています。ちなみに、https://maps.apple.com(SSL)は、ブラウザでアクセスしても反応してくれません。

for Android

Androidは、そのリソースをMapsアプリで開くかブラウザで開くかユーザーに選ばせます。

  • http://maps.google.comでブラウザおよびMapアプリが反応する
  • http://maps.apple.comでもブラウザおよびMapアプリが反応する(!)

http://maps.apple.comでMapアプリが反応するのは、http://maps.apple.com自体がブラウザなどでHTTPアクセスされるとhttp://maps.google.comにリダイレクトされるので、そこで改めて反応してるんじゃないかと思う次第。(すみません、詳しくは調べてないので憶測混じってます)

とどのつまり

http://maps.apple.comでURLつくっておけば「iOSではMapsアプリが開けるし、Androidでもよしなにできるよ」という何ともアップル様状態なようです。

まあ、iOS6で刷新されてしまい、少なくとも日本国内においては情報が減ったような気がするMapsアプリに、敢えて遷移する必要があるのかというと、様子をみて慎重に判断したほうがよさそうな気もします。