オープンソースかつ無料で利用できる逆ジオコーダーです。
この NPM モジュールを使用すると、緯度経度から都道府県名および市区町村名を検索することができます。
都道府県名および市区町村名を検索するために必要なデータを、ベクトルタイルフォーマットで GitHub ページ上にホストしていますので、安心して無料でご利用いただけます。
また、GitHub ページ上にホストしたベクトルタイルを使用して都道府県名と市区町村を取得するという仕様のため、このモジュールを開発する Geolonia では個人情報の収集を一切行っておらず、安心してご利用ただけます。
openReverseGeocoder()の引数として指定された緯度経度を元に、クライアントサイドでズームレベル10相当(約30km平米)のタイル番号を取得し、ウェブサーバーからベクトルタイルを AJAX でダウンロードします。- AJAX でダウンロードしたベクトルタイルの中に含まれる市区町村のポリゴンの中から、指定された緯度経度が含まれるポリゴンをクライアントサイドで検索し、都道府県名及び市区町村名を返します。
$ npm install @geolonia/open-reverse-geocoder -S
const { openReverseGeocoder } = require(@geolonia/open-reverse-geocoder)
openReverseGeocoder([139.7673068, 35.6809591]).then(result => {
console.log(result) // {"code": "13101", "prefecture": "東京都", "city": "千代田区"}
})
または
const { openReverseGeocoder } = require(@geolonia/open-reverse-geocoder)
const result = await openReverseGeocoder([139.7673068, 35.6809591])
console.log(result) // {"code": "13101", "prefecture": "東京都", "city": "千代田区"}
まず、このリポジトリをクローンする。
$ git clone git@github.com:geolonia/open-reverse-geocoder.git
$ cd open-reverse-geocoder
タイルデータを用意するコマンドを実行するために必要な以下のツール群をインストールする。
- ogr2ogr (macOS の場合は
brew install gdalでインストールできます) - tippercanoe (macOS の場合は
brew install tippecanoeでインストールできます) - mb-util (インストール方法については https://github.com/mapbox/mbutil#installation を参照)
その後、以下のコマンドを実行すること。
$ npm run build:tiles
- まず国土数値情報から、最新の行政区域データをダウンロードする。最新版は URL が変わるので注意。
- 解凍
ogr2ogrで GeoJSON に変換。ファイル名に注意。- タイルのプロパティを調整するためのスクリプトを実行。
tippecanoeで*.mbtilesを作成。意図的に圧縮を無効にしている。- タイルを分解して静的に利用できるようにする。
都道府県及び市区町村データについては、国土数値情報の行政区域ポリゴンを使用しています。
https://nlftp.mlit.go.jp/ksj/gml/datalist/KsjTmplt-N03-v2_4.html
MIT