ヤマレコで利用している地図画像

2019年4月25日

ヤマレコ代表のmatoyanです。こんにちは!

今日は地図に関する話を書いてみたいと思います。
山行記録や山行計画の作成、ヤマレコMAPの登山地図としてなど、ヤマレコでは色々な場面で地図を利用させていただいています。

一般的にネットやアプリで使われている地図は世界全体をタイル状に区切った「地図タイル」という画像になっていて、地図を見るときは必要なタイミングで必要なだけ地図タイルの画像を取ってきて表示することで、今いる場所の地図を確認できるようになっています。


図:地図タイル(出典:国土地理院ウェブサイト

この地図タイルは様々な企業や組織が提供されています。有償・無償も様々で、利用条件も色々です。
例えば、ヤマレコのWebサイトで利用しているYahoo!地図のAPIは無償で提供いただいていており、海外地図などで利用しているGoogle Maps APIは昨年から有償化されたりしています(一定のダウンロード数までは無償です)。Google Mapの場合はアプリを個人で使う分には無料なのですが、Webサイトなどに組み込んで多くの方に使ってもらう場合は有料だったりします。

日本国内の地図に限れば、国土地理院の地理院タイルが無償で利用できます。
また、登山の計画を作れるサービス「ヤマプラ」では昭文社さんから提供いただいている「山と高原地図」の地図タイルを利用しています。

地図タイルには有償・無償のものを含めて色々あるのですが、特に有償のものは「地図タイルをダウンロードした数」や「地図を使った人の数」に基づく従量課金になる場合が多いので、地図を見る人が増えれば増えるほど費用的な負担がかかってきてしまいます。ヤマレコでは登山に使える等高線などがきちんと表示される地図の中から、できるだけ費用を抑えた地図を使うようにしています。

海外向けの地図についても、4月19日ごろより以前から利用していたOpenCycleMapからOpenTopoMapという地図を利用するように切り替えました。
こちらのOpenTopoMapは無償で利用できるようなのですが、地図の一部が欠けていたり、現地の言語で地名が書かれていて英語表記がなかったりなど、登山のサービスとして使う前提だとちょっと使いづらいところもあります。
有償でもいい地図であればお金を払う価値もあるとは思うのですが、国内は無償で利用できる国土地理院提供の「地理院タイル」があり、ヤマレコを使われている方々の99%以上の方が国内の登山に使われている現状からするとなかなか国外の地図のためにコストをかけることもできない状況です。


このような状況を踏まえて、最近は(あくまでも個人的な趣味として)ヤマレコ独自の地図タイルを作れないかなーと考えています。


地図タイルを作るにあたっては、地図画像のもとになるデータが必要です。
「地図」と言われると絵や記号で書かれたいわゆる紙の地図のイメージがありますが、そのもとになるデータは建物や河川などの地物を多角形で表現したもの、道路などの「線」やその名称、どちら向きに進めるかなどの属性、そもそも目には見えない県境や市町村など、地物や属性データの集合体になっています。(私は専門ではないので詳しくはないのですが、これらをまとめて「地理情報」というようです)


図:地理情報(出典:国土地理院ウェブサイト

この世界中に存在する「モノ」の情報はまだ地図の画像にはなっていない、あくまでも「情報」でしかありません。
この情報をもとに、何を選んでどのように描画するのかをある特定の「ルール」に基づいて線を引いたり色を塗ったり文字を重ねたりすることで、世界中の地図画像を自動的につくることができます。
この「地理情報」を扱うシステムのことを地理情報システムと呼び、様々なツールやシステムが作られています。

このような情報をみんなで集めて地図を作る地理情報システムをオープンにするプロジェクトとして「OpenStreetMap」というプロジェクトがあります。

OpenStreetMap自体でも独自の地図タイルを作っていますが、その派生プロジェクトとしてOpenCycleMap、OpenTopoMapなど、OpenStreetMapのデータを元に作られている色々な地図タイルがあります。
これらの地図が元にしているのはどれもOpenStreetMapの地理情報です。この地理情報をどのように画像にするのか、(またはOpenStreetMap以外のデータとも組み合わせるならその組み合わせ方)というルールが違うだけで色々な見た目の地図ができあがります。

OpenStreetMapのプロジェクトでは世界中の人が協力して、道や地名などの地図に必要なデータをリアルタイムにアップデートされています。
ただ、OpenStreetMapのプロジェクトには標高に関するデータがないので、OpenCycleMapやOpenTopoMapはSRTM (Shuttle Radar Topography Mission)というプロジェクトで集めた世界全体の標高データを組み合わせて等高線や陰影を描いています。

このような地図タイルを作るために、多くの地理情報システム専用のプログラムが公開されています。

例えばOpenStreetMapのデータから地図タイルを作る場合は
・osm2pgsqlというOpenStreetMapのデータをpostgresqlというデータベースに書き出すツール
・postGISというpostgresqlのデータベース上で地理情報を扱えるようにするプラグイン
・GDALという画像のフォーマット等を変換するツール群
・phyghtmapというSRTMの標高データから等高線を引くツール
・様々なデータを集めて地図タイルを生成するmapnikというツール
などなど、様々なプログラムを組み合わせて生成します。

私は数年前から気が向いた時に地図生成用のサーバーをセットアップしていて、上記で挙げたようなツールと、OpenStreetMapとSRTMのデータを使って地図タイルを試しに作ったりしています。
ただネットに出ている情報も少なくてツールの使い方がわからず、陰影部分の画像が歯抜けになってしまったり、データの取得方法にミスっていたり、フォントが正しく反映されなかったりなど色々と問題が出て、その都度挫折してしまいます。


図:歯抜けになった生成画像


図:陰影なしで生成した地図画像

また長野県だけテストで地図を生成するだけなら比較的短い時間で処理が終わるのですが、世界中のデータを処理しようとすると1つの処理をするだけで何日もかかったり、メモリやハードディスクなどの容量が足りなくなって一般的に紹介されているやり方では変換できなかったりなど色々と躓いてしまいます。
いつになるかはわかりませんが、個人的な趣味を続けてこのあたりを一つ一つ潰し、いつかヤマレコ独自の地図タイルを生成して皆さんにお届け出来るといいなと思っています。

最後に、OpenStreetMapのプロジェクトはボランティアの皆さんが協力して地理情報を入力し、世界中の地図を最新のものに更新し続けています。
世界中の人が協力して地図を作るというのも面白いですよね。地図の修正には技術は特に必要なくて、サイトの使い方を覚えるだけのようですので興味がある方は地図の作成に協力するのもいいのではないでしょうか。
私は蓄積された地理情報のデータを使うだけで、地理情報の修正や入力についてはまだやったことがないのですが、また機会を見てプロジェクトへの貢献の方法についても紹介できるといいなと思います。

ではまたー。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です