Google Geocoding 入門
Tweetジオコーディングとは
ジオコーディングとは、住所情報を位置座標情報(緯度経度など)に変換する工程のことです。この位置座標情報を用いてマーカーを地図に立てたり、マップを移動させたりする際に用います。
Geocoding is the process of converting addresses (like a street address) into geographic coordinates (like latitude and longitude), which you can use to place markers on a map, or position the map.
リバースジオコーディングとは、位置座標情報を人間が理解できる住所情報に変換する工程のことです。
Reverse geocoding is the process of converting geographic coordinates into a human-readable address.
API key の取得
- Google Cloud Platform で API キーの取得管理は行う模様
- API キーを公開してしまうと、それを使った回数によって課金されるので、使用に制限をかける必要あり
- 具体的には特定のドメインからしか使えないようにしたり設定する
- プロジェクト => Geocodign => credential に API がある
Geocoding, places 等々いろいろあるがどれを使えば…
Google の地図/位置情報 関係の API はかなりたくさんあるので、結構自分も目的の API を見つけるのに苦戦しました。結論からいうと以下です。
- 一般に提供されているサービスとしての GoogleMap で検索した際に、候補をいくつか出してくれる機能を使いたい => places API の autoCoomplete
- 株式会社ジオロジック => 住所と lat,lang の位置情報に変換したい => GeoCoding API
- Places はいつつかうのか!渋谷 居酒屋とかって検索したい時に使う感じだと予想。目的の位置が決まっている場合にはいらないのかなと。
ということでユーザーインターフェイスとしては、まず places API の autoCoomplete を使ってユーザーが入力しようとしている場所を返しつつ、ユーザーが一意に対象の場所が決まったら、その住所情報を GeoCoding API を使って Lat, Lang に 変換するという流れになります。
Places API autoComplete
基本的には以下の実装で与えているパラメータが必須。language は必須ではないが、入れないと環境によっては英語で返ってくる。これで一応動く。
予測変換の実装
static async placeAutoComplete(input) {
const googleGeoCodingKey = 'YOUR_API_KEY'
const endpoint = `https://maps.googleapis.com/maps/api/place/autocomplete/json`
const language = 'ja'
const res = await axios.get(endpoint, {
params: {
key: googleGeoCodingKey,
input,
language
},
})
return res.data
}