geolonia / community-geocoder

Open Source and Free GeoCoding API in Japan
MIT License
180 stars 26 forks source link

Community Geocoder

オープンソースのジオコーディング 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)

住所の文字列として「東京都千代田区霞が関1-3-1」を渡した場合、コールバック関数に引き数として渡される緯度経度のオブジェクトは以下のようになっています。

{
  addr: "3-1"
  city: "千代田区"
  lat: 35.673944
  level: 3
  lng: 139.752558
  pref: "東京都"
  town: "霞が関一丁目"
}

開発者向け情報

まず、以下のコマンドで環境を用意してください。

$ git clone git@github.com:geolonia/community-geocoder.git
$ cd community-geocoder
$ npm install

JavaScript API の開発方法

src/api.js がこのサービスで提供される JavaScript API のソースです。 以下のコマンドでブラウザで確認しながら作業できます。

$ npm start

プルリクエストはいつでも歓迎します。

ライセンス、利用規約

プルリクや Issue は大歓迎です。住所の正規化を工夫すれば精度があがりそうなので、そのあたりのアイデアを募集しています。