オープンソースのジオコーディング API です。
経産省の IMI コンポーネントツールのジオコーディングの仕組みからインスピレーションをうけて開発しました。
デモ: https://community-geocoder.geolonia.com/
無料で利用できてオープンソースの、住所から緯度経度を検索するためのジオコーディング API を公開しました。
Geoloniaの住所正規化ライブラリ@geolonia/normalize-japanese-addressesを利用して、緯度経度を取得したい住所を正規化(都道府県、市区町村、町丁目などに分解する)した上で、緯度経度を取得します。
以下の JavaScript API をウェブページから読み込んでください。
<script src="https://cdn.geolonia.com/community-geocoder.js"></script>
API 関数 getLatLng()
を任意のクリックイベント等でコールしてください。
document.getElementById('exec').addEventListener('click', () => {
if (document.getElementById('address').value) {
getLatLng(document.getElementById('address').value, (latlng) => {
map.setCenter(latlng)
})
}
})
getLatLng(address, callback, errorCallback)
address
- 緯度経度を取得したい住所の文字列callback
- 緯度経度を取得したあとで実行したいコールバック関数。コールバック関数の第一引き数には緯度経度のオブジェクトが渡されます。errorCallback
- エラー時のコールバック関数。エラーオブジェクトが引き数として渡されます。住所の文字列として「東京都千代田区霞が関1-3-1」を渡した場合、コールバック関数に引き数として渡される緯度経度のオブジェクトは以下のようになっています。
{
addr: "3-1"
city: "千代田区"
lat: 35.673944
level: 3
lng: 139.752558
pref: "東京都"
town: "霞が関一丁目"
}
addr
- 都道府県名、市区町村名、町丁目を除いた残りの住所city
- 市区町村名lat
- 緯度level
- 正規化レベル。住所文字列のどこまでを判別できたかを以下の数値で表しています。
lng
- 経度pref
- 都道府県名town
- 町丁目まず、以下のコマンドで環境を用意してください。
$ git clone git@github.com:geolonia/community-geocoder.git
$ cd community-geocoder
$ npm install
src/api.js
がこのサービスで提供される JavaScript API のソースです。 以下のコマンドでブラウザで確認しながら作業できます。
$ npm start
プルリクエストはいつでも歓迎します。
プルリクや Issue は大歓迎です。住所の正規化を工夫すれば精度があがりそうなので、そのあたりのアイデアを募集しています。