今回は「住所から緯度経度を求める方法」についてまとめます。
概要
Goocle Cloud Platform (GCP) の Geocoding API を利用すると「住所から緯度経度を求める」ことができます。 お金が 1000リクエストにつき 5$ (2020年2月時点)かかるようですが…。
今回は GCP の Geocoding API を利用して任意の住所から緯度経度を求める方法を準備から実装までまとめます。
GCP Geocoding API の準備
プロジェクト作成
今回用に新しいプロジェクトを作成します。 既存のものを使うのであればこの作業はスキップしてもOK。
Geocoding API 有効化
APIキーの追加
以上で使える状態は作れたので、以降では実際に使っていきます。
住所から緯度経度を取得
Geocoding API を直接実行して取得
直接 Geocoding API を実行する方法です。 基本になる方法なのでおさえておくのが良い気がします。
リクエスト
リクエスト
GET: https://maps.googleapis.com/maps/api/geocode/<format>
パラメーター
| パラメーター | 必須 | 型 | 説明 |
|---|---|---|---|
| パスパラメータ― | |||
| format | ○ | string | 以下のどちらかを指定。
|
| クエリパラメーター | |||
| address | ○ | string | 検索したい住所を指定。 |
| key | ○ | string | あらかじめ取得しておいた有効なAPIキーを指定。 |
| language | string | 戻り値の言語を指定。日本語の場合 ja を指定。 その他の言語は サポート言語 を参照。 | |
レスポンス
{
"results": [{
"address_components": [{
"long_name": string,
"short_name": string,
"types": [string ...]
} ...],
"formatted_address": string,
"geometry": {
"bounds": {
"northeast": {
"lat": number,
"lng": number
},
"southwest": {
"lat": number,
"lng": number
}
},
"location": { // ★ 経度緯度はここに入る
"lat": number, // ★ 緯度(latitude)
"lng": number // ★ 経度(longitude)
},
"location_type": string,
"viewport": {
"northeast": {
"lat": number,
"lng": number
},
"southwest": {
"lat": number,
"lng": number
}
}
},
"place_id": string,
"types": [string ...]
}],
"status": string
}
Node.js ライブラリを利用して取得
利用するモジュールは 「@googlemaps/google-maps-services-js」 です。
このモジュールを使ったサンプルコードは以下のようになります。
基本は「Geocoding API を直接実行」になりますので、リクエストパラメーターやレスポンスのオブジェクトは前述のリクエストレスポンスに類似します。
var Client = require("@googlemaps/google-maps-services-js").Client;
var client = new Client({});
client.geocode({
params: {
address: "<検索したい住所>",
key: "YOUR-API-KEY"
},
timeout: 10000
}).then((res) => {
if (res.data.results.length === 0) {
console.log(res);
}
console.log(res.data.results[0].geometry.location);
}).catch((err) => {
throw err;
});
連続アクセスすると取得できないことがあるので、エラー処理は入れておくのが無難です。 また、連続処理させたい場合はいっきにリクエストを投げつけるのではなく、少し間隔をあけながらリクエストしたほうがうまく応答が返ってくるようでした。
今回は「住所から緯度経度を求める方法」についてまとめました。 参考になったでしょうか? 本記事がお役に立っていると嬉しいです!!
参考記事
最後に… このブログに興味を持っていただけた方は、 ぜひ 「Facebookページ に いいね!」または 「Twitter の フォロー」 お願いします!!









