Geoloniaさんのオープンソースで、国交省のオープンデータと、GitHubを活用した完全無料の逆ジオコーダー「@geolonia/open-reverse-geocoder」が登場しました!
「緯度経度から都道府県・市区町村を検索できるオープンソースの逆ジオコーダーをベクトルタイルで作りました! - Geolonia blog」
「緯度経度地図」に組み込み、地方公共団体コード、都道府県、市区町村の表示対応。
JavaScript(Node.js)で動くコードを、ブラウザやDenoで気軽に使えるESモジュール対応に変更して使用しています。
「taisukef/open-reverse-geocoder: オープンソースかつ無料で利用できる逆ジオコーダーです。」
使い方は簡単、こんなJavaScriptのコードをHTML内のスクリプトや、Denoのサーバーコードに書くだけでOKです!登録不要、すぐ動きます。
import { openReverseGeocoder as geocoder } from 'https://taisukef.github.io/open-reverse-geocoder/src/main.js'; const res = await geocoder([139.7673068, 35.6809591]); console.log(res); // { code: "13101", prefecture: "東京都", city: "千代田区" }
緯度経度から市区町村を調べるプログラムはこちら main.js。 国土地理院の行政区域データをベクトルタイルに変換したものをGitHub Pagesに置き、緯度経度から該当するベクトルタイルを調べて、中にあるどのポリゴンに当たるかを調べて返しています。 ポリゴン内判定や、座標変換用のライブラリ global-mercator、d3-geo, d3-array を追加でESモジュール化して対応。
URLでインポートできるESモジュールは、世界中の知見をプログラムでどんどんつないでいく感じが楽しい!