こんにちは。Geolonia の大橋です。
普段は、主にフロントエンド・地図スタイルを担当しています。(先日、Geolonia Maps の開発者向けのデモページが公開されたので良かったら見てみて下さい!)
先日、Geolonia の地図をバージョンアップしましたので、改善した箇所をご紹介します。
Geolonia の basic という地図スタイルに路線名を追加しました。
先日、Twitter で話題になった、ウズベキスタン鉄道公式サイト と同じデータ(OpenStreetMap) を使用しています。
鉄道界隈では、貨物支線なども書いてあり、かなり細かいと話題になりました。
路線名の追加でも、細かすぎるが故の悩み?が出てきたので、実装時にひと工夫をしています。
実は、OpenStreetMap のデータには「北海道新幹線」や「中央新幹線」などの建設中の路線のデータも含まれています。こういったデータは面白いのですが、地図としてはユーザーを困惑させてしまうため Geolonia の地図データからは除外しています。
OpenStreetMap の路線の種類を表現するタグがあるのですが、現在 Geolonia では、abandoned(廃線)、construction(建設中)、disused(休止線)、miniature(ミニチュア鉄道)、preserved(保存鉄道
) 等はタイルから除外しています。
タグの種類について詳しく知りたい方は以下をご覧ください。
https://wiki.openstreetmap.org/wiki/JA:Key:railway
低ズームでの市区町村名の表示も調整しました。修正前の画像のように、低ズームで一度に市区町村名が表示されてしまうと、情報量が多すぎてユーザーにとって分かりにくくなってしまう問題がありました。
なので、市区町村を人口別にランクをつけて人口の多い市区町村を優先的に表示するように修正しています。
ただ、単純に人口別に表示してしまうと、人口の少ない市区町村が多い地方では、かなりズームしないと何も表示されなくなってしまいます。
なので、日本の市の人口順位 を参考にしながら市に人口別のランクをつけ、東京にある市の人口のランクは高ズームで表示、地方にある市の人口のランクは低ズームで表示するという工夫をしています。
現時点では、ランク 7~10 は地方都市が多いので低ズームで表示しています。
elseif place == "city" then
-- 日本の都市(OSMにデータがあるもの)から適当にランク/ズーム付け
if pop>2000000 then rank=2; mz=5 -- 横浜、大阪、名古屋
elseif pop> 900000 then rank=3; mz=6 -- 千葉、札幌、福岡など
elseif pop> 400000 then rank=4; mz=6 -- 長崎、大分、八王子、鹿児島など
elseif pop> 150000 then rank=5; mz=7 -- 帯広、弘前、立川、三鷹など
elseif pop> 100000 then rank=6; mz=7 -- 武蔵野、沖縄、小樽など
elseif pop> 55000 then rank=7; mz=7 -- 亀岡、北名古屋、国立、武蔵村山、室蘭など
else rank=10; mz=7 -- 東京以外の市
end
路線名の表示や、市区町村の表示一つとっても地図のスタイルは明確な答えのない世界なので面白いですね。
Geolonia Maps はこのように日々改善されています。もし興味を持たれた方は以下のリンクから試して下さい。フィードバックもお待ちしています!
Geolonia Maps の開発者向けのデモページはこちら