GoogleMapsAPIの勉強
ジオコーディングとは
ジオコーディングは住所を地理座標に変換する処理のこと。
逆の処置も行える(リバースジオコーディング)。
ジオコーディングリクエスト
-
google.maps.Geocoder
をコード内で使用することにより、Google Maps API ジオコーディングサービスにアクセスできる。 -
Geocoder.geocode()
メソッドによって、ジオコーディングサービスへのリクエストを開始する。また、入力語句を含むGeocoderRequest
オブジェクトリテラルと、回答の受け取り時に実行するコールバックメソッドを渡す。 -
GeocoderRequest
オブジェクトリテラルのフィールドは以下のようになっている。
{
address: string,
location: LatLng,
placeId: string,
bounds: LatLngBounds,
componentRestrictions: GeocoderComponentRestrictions,
region: string
}
必須パラメータ (1つだけ指定する必要がる)
address
or location
or placeId
省略可能パラメータ
bounds
、componentRestrictions
、region
ジオコーディングのレスポンス
ジオコーディング サービスには、ジオコーダの結果を取得する際に実行されるコールバック メソッドが必要です。このコールバックでは、
results
とstatus
のコードをこの順序で保持する 2 つのパラメータを渡す必要があります。
ジオコーディングの結果
GeocoderResult
オブジェクトは、1つのジオコーディングの結果を表す。
results[]: {
types[]: string,
formatted_address: string,
address_components[]: {
short_name: string,
long_name: string,
postcode_localities[]: string,
types[]: string
},
partial_match: boolean,
place_id: string,
postcode_localities[]: string,
geometry: {
location: LatLng,
location_type: GeocoderLocationType
viewport: LatLngBounds,
bounds: LatLngBounds
}
}
ステータスコード
"OK"
は、エラーが発生せず、住所が正常に解析され、少なくとも 1 件のジオコードが返されたことを示します。"ZERO_RESULTS"
は、検索は成功したものの結果が返されなかったことを示します。これは、実在しない address がジオコーダに渡された場合に発生することがあります。"OVER_QUERY_LIMIT"
はリクエストが割り当て量を超えていることを示します。"REQUEST_DENIED"
はリクエストが拒否されたことを示します。ウェブページではジオコーダを使用できません。"INVALID_REQUEST"
は一般的に、クエリ(address、components、latlng)が不足していることを示します。"UNKNOWN_ERROR"
はサーバーエラーでリクエストが処理できなかったことを示します。再度リクエストすると、成功する可能性があります。"ERROR"
は、リクエストがタイムアウトしたか、Google サーバーへの接続中に問題が発生したことを示します。再度リクエストすると、成功する可能性があります。
公式ドキュメント