Drupalで基盤地図情報準拠の地図を表示してみた

hagi に投稿

人によって違うとは思うが、私は地図情報と言えば、Google Mapを思い浮かべる。更新も早いし、体感的にも正確である。

一方で、情報システムの中で使おうと思うと、お金がかかってしまう。Drupalで地図上の場所をGoogle Mapで表示する場合は、Maps JavaScript APIを呼び出すことになり、2022年4月5日時点での価格表では、1回あたり0.007米ドル(0.86円)が必要になる。ただ、毎月200ドルの無料枠があるので、もしこのAPIだけを使っているのであれば、月に28,571回までは無料になる。ちょっとした実験サイトであれば全く問題にならないが、例えば1,000人の従業員が毎日10カ所程度を表示するようなアプリケーションを作ると、月額の支払いは23万円強となる。従業員一人あたりにすれば約233円となり、まあそんなものかと思わなくもないが、塵も積もれば山となる。同時に、Google MapはGoogleの商品だから、いつ値上がりするかわからないし、例えば有事には自分のいる場所で使えなくなっている可能性も否定できない。

オープンソースの世界に生きていると、大量に呼び出す可能性が高いものについては、やはり代替選択が可能なサービスが望ましい。地図情報であれば、オープンストリートマップが好ましい。地図データはCC BY-SA 2.0なので、自由に使えるのが良い。そのデータの中には、世界のデータソースに加えて、地理院地図等も含まれている。日本の公式な情報が使えるのはありがたい。ただ、データ量は膨大で、メンテナンス頻度も高いので、自分でデータのコピーを持ってきてシステムを作るのは現実的ではない。Maps JavaScript APIを代替できるクラウドサービスを採用したいところである。

日本では、MIERUNEmaptilerを使って国土地理院基盤地図情報に基づいて日本人に馴染みがある感じの地図情報を提供している。もちろん、maptilerもスイスの私企業なので、将来に渡って安定的にサービスが得られる保証はないし、地図の表示方法はMIERUNEの視点に従うことになるが、Googleだけに依存しなくてよいという意味ではありがたい。特に、日本の公的情報に基づくデータという点には魅力がある。ちなみにJP MIERUNE Streetsには区境の情報が含まれている。Google Mapにも区境の情報は入っているが、何と言っても地理院地図は公式情報だからより信頼性が高いと考えて良いだろう。ありがたいことに価格もGoogle Mapより安い。月間30万件だとMIERUNEの価格表だと、25ドルで約3,000円とGoogleの70分の1程度となる。塵も積もれば山となるとは言え、従業員あたり月3円ならやりやすくなるのは間違いないだろう。

Drupalの場合は、Leafletが使え、ベータながらLeaflet Maptilerというモジュールがあるので、実際に実験的に設定してみた。

 

正直な感想としては、Googleの方が見やすいと思うが、まあ実用上は問題ないだろうと思う。ちょっと興味深いと思うのは右側のぶんか社の道がMIERUNE側には存在しない。公的には道ではないということなのかも知れない。ちなみに、地元千駄木駅そばのへび道(地図右側)は、文京区と台東区の区境である。MIERUNE側では、区境が道から外れているがこれは恐らく基盤地図情報の区境(行政区画の境界線)のポリゴンデータがそうなっているのだろう。それでも2.5m誤差の範囲には入っているはずだと思う。

 

デジタル・ガバメントが進めば、精度も頻度も上がるだろうし、工事の情報や飲食店の許認可情報も組み合わせられるようになるはずなので、長期視点で見るとGoogleに勝てる可能性は十分あるだろう。

Googleの凄さには本当に頭が下がるが、行政データのオープンソースの対応強化のほうが筋が良いと思う。さらに長期的には、ブロックチェーンでipfs対応すれば、よりよい気がする。

※冒頭の画像は、https://maptiler-docs.mierune.io/cloud/basics/howtouse-map/から引用させていただいたもの