Google地図タイルは使っちゃダメ!
Appleのしょぼい地図化したiOS6ですが、Google地図復活系アプリが評判です。
http://hitoriblog.com/?p=11555
Google地図を使うサンプルもオープンソースで公開中です。
https://github.com/kishikawakatsumi/ClassicMap
http://qiita.com/items/8d89eeea614ce4293514
技評で紹介されたものもあります。
http://gihyo.jp/dev/serial/01/ios_oss/0006
が、この辺、個人の遊びで使うのはOK*1ですが、ビジネスで使うのは完全NGです。
これらのソースは皆、直接Googleの地図画像を呼び出していますが、Google Maps APIの規約上、APIを叩く以外の形で地図画像を呼び出すのはライセンス違反です*2。
Googleは年間100万円からの有償API販売も行っていますが、その有償APIですら地図画像への直接アクセスは禁止されています*3。
ましてや無料では完全ダメです。
先の記事で紹介されているようなアプリはみな、恐らくは確信犯*4的にライセンス違反を認識しつつもアプリを出しているので、それを「お?なんだGoogle地図使えるのか。オープンソースにもなってるしいっちょ使ってやるか」的に真似して続くのは、特に法人の場合とても危険です。
===== 10/10 昼休み追記 =====
作者の方から連絡をいただきまして、技評の記事の2つ目に載っています、YAMapKitは、使っても問題なさそうです。
内部でJavaScriptを使っているのは確認しました。
読解能力の不足&時間の足りなさで、実装がWebViewを直接見せてJavaScriptのGoogle Maps APIに制御を任せているのか、JavaScript APIにタイルアクセスはさせているけど取得したタイルはメモリに取り込んでObjCで制御しているのかまでは確認できなかったのですが、前者ならば全く問題なく利用OKですし、後者だと若干グレー感はあるけれど、まあギリギリありかもしれません。
いずれにせよ、タイル直接アクセスよりははるかに危険度は少ないです。
===== 追記ここまで =====
使うなら別の地図
使いたいのは判ります、むっちゃ判ります、私だって使いたい、ですがそこはグッと我慢して、別の方策を考えましょう。
たとえば他の地図会社のSDK、YahooロコAPIやマピオンAPIを使うとか、或いはこれまで通りMapKitやroute-meを使いたいなら、OpenStreetMap系の地図タイルや電子国土v4*5等だって使えます。
この機会に広くいろんな人に考えてもらいたいのですが、地図はただで作られているわけではありません。
Google Maps APIがただで公開されて以来、まるで地図は情報を載せるだけの空気のように扱われてきましたが、iOS6地図の失敗?以来、地図作りの苦労を再認識する記事が注目を集めています。
http://www.1101.com/21c_working/zenrin/index.html
http://blog.olp.yahoo.co.jp/archives/20120928_chukihaichi.html
要するに、これだけの手間暇、コストがかかっている地図というのは、本当に昔から利用するのに高い費用がかかるものだったのです。
Google Maps APIがただで使えたのも、Googleが自社戦略のために地図データを高い金で買って、それを無料で公開していたからですし、そのGoogle Maps APIですら、最近は大規模な利用に対して課金しようと言う動きになっています。
同様に、MapKitで地図がただで使えたのも、Appleが自社戦略のためにGoogleに高い金を以下同文。
その無料で使えるMapKitが気に入らなくなったからと言って、認められていない規約違反の方法で費用も払わずGoogleの地図を使わせてもらおう、だって地図なんてただでしょ、というのは重大なルール違反なわけです。
どうしても無料で使いたいなら、そういうフリーで自由な用途に使えるようにすべく、多くの人達が参加しているOpenStreetMapという活動があるのですから、それを使えばいいし、OSMの地図が情報不足等で気に入らないのなら、自分たちの詳しいところだけでも、情報提供して詳しい地図にすればいい。
或いは行政が提供してくれる、電子国土のようなデータを有効活用すればよい。
今回を機に、地図にかかるコストの膨大さ、そして皆が安心して使える地図の重要さに多くの人が気付いて、OSMの活動への賛同者が増えてくれたり*6、或いは電子国土の有効活用例が増えたりしたら、その業界をよく知るものとしてとても嬉しいです。
とはいえ…みんなG地図も使いたいよね!APIと地図の分離を呼びかけよう!
という感じで、Google Maps地図をプロダクトに使うのは御法度、というのを強調してきましたが、しかしそれはそれとして、Google地図でみんな遊びたいですよね。
せっかくオープンソースもあるんですし、責任の取れる遊びの範囲ならどんどん使っていいんじゃないかと思います。
地図APIを、お仕着せのMapKitではなく、タイル地図まで置き換えて呼んでるようなソースコードに触れると、これまで知らなかったような地図の仕組みだって判ってくると思います。
地図の上に別の地図をどうやって載せているか、オーバーレイの仕組み*7。
地図のタイルはどういう座標系で計算されて、どういう仕組みで分割されているか*8。
これを機会に、そういったところに興味を持ち詳しい人達が増えてくれれば、とても嬉しいです。
そして、そのように地図タイルと地図APIでいろいろ遊んでいると、きっといつか思うようになるでしょう。
「なんでこの使い慣れたAPIで、あっちの気に入った地図タイルが呼べないの?」という感じの事を。
実は今、この地図API業界界隈、APIと地図の分離というのが割とホットな話題です*9。
好きなAPIで好きな地図が扱えれば、みんな幸せになれますよね。
残念ながら今は、
という2つの意味で、好きなAPIで好きな地図を使えるような環境からはほど遠い状況です。
とはいえその実現には、ただタイルを呼び出される方はどうやって収益確保するねん、地図作るのむっちゃコストかかってるのに、みたいな問題もあるのですが、しかし完全な「ただ」は無理でも、今はお金払ってさえ「いくら積まれてもそんなライセンス製品はありません」みたいな状態になってるのは、どうにも歯痒いですよね。
共通のAPIに対して、誰でも好きな地図を有償無償はともかくとして販売できる、AppStoreならぬMapStoreみたいなものを作ろう、というキーワードもこの界隈では出てきたりしています。
そういう辺りにまで興味を持って、議論に参加し訴えかける人が増えてくれれば、いつか将来、ライセンス的懸念を気にする事なくMapKitでGoogle地図を使い倒せる日もくるかもしれない、そういう気がします。
*1:いやそれすらOKじゃないかもしれんけども、まあその辺は固い事言わずに
*2:利用規約 https://developers.google.com/maps/terms ここの10.1.1(a)項にそのものズバリでタイルへの直接アクセス禁止が謳われています
*3:この辺は、一時業務で有償版を使っていた事があるので、お金払ってるんだから融通利かせてくれてもいいんじゃない〜?ダメ?と当時も聞いてダメと確認してますし、最近も変化がないかは確認しているので、確実です
*4:誤用的な意味で
*5:アプリ等で使う場合は申請が必要なはずです。申請と言っても、費用はかからず、よほど規約に外れた無茶な使い方でない限り拒否はされないはず
*7:或いは、オープンソースではないですけど、Maps+というアプリは、Method Swizzlingという関数の乗っ取り機構を利用して、MapKitのメイン地図レイヤの地図タイル読み込み部分を乗っ取って独自地図を表示しているらしいです。スゲエ!
*8:このタイル仕様の素晴らしさについては、以前の記事で採り上げました。http://d.hatena.ne.jp/kochizufan/20120927/1348749299
*9:ごく一部とか言わない!
*10:或いは呼べても、相当面倒な事をしないといけない