ガイド

番地のない住所を扱う

すべての住所に番地があるわけではありません。地方の配達ルート、一部の新しい開発地区、よく知られたランドマークは番地なしで呼ばれることが多く、毎回番地があることを前提に作られたジオコーディングのリクエストでは、これらの有効な結果がどのようなものかを読み違えてしまいます。

番地がない場合のレスポンス

GET /v1/forward?q=Golden Gate Bridge, San Francisco&limit=1
{
  "status": "ok",
  "query": "Golden Gate Bridge, San Francisco",
  "results": [
    {
      "formatted": "Golden Gate Bridge, San Francisco, CA",
      "lat": 37.8199,
      "lon": -122.4783,
      "type": "address",
      "precision": "street",
      "confidence": 0.9,
      "place_id": "gb567",
      "components": {"city": "San Francisco", "region": "CA", "country": "US"}
    }
  ]
}

ここではcomponentsにhouse_numberフィールドがなく、precisionが「house」ではなく「street」になっていることに注目してください。どちらも、実際に番地のない住所では想定どおりのことであり、検索が失敗した、あるいは部分的にしか成功しなかったことを示すものではありません。

precisionを正しく読み取る

precisionはエラーの指標ではなく、一致がどれだけ具体的かを表すものとして扱ってください。precisionが「house」なら、一致は特定の建物に解決されています。「street」なら、正確な建物までは特定せず、通り、またはその通り沿いの地点に解決されています。これは、ランドマークや実際に番地のない住所にとってはまさに正しい結果です。

2つ目の例:よく知られた公共の場所

GET /v1/forward?q=Central Park, New York&limit=1

このような名前の付いた公共の場所は通常、typeが「address」よりも広い値に設定され、precisionは1つの地点ではなくエリアを反映したものになり、componentsオブジェクトには市区町村と地域しか含まれないこともあります。これは橋の例と同じパターンです。クエリが実際に指していたのがエリアなので、特定の建物ではなくエリアを対象とするものとして正直に記述された、実際に役立つ結果です。

検証ロジックをそれに合わせて調整する

現在のフォームの検証で、住所を完全なものとして受け入れる前にhouse_numberフィールドの存在を必須にしている場合、そのチェックは正当な地方の住所やランドマークを誤って却下してしまいます。すべての構成要素が埋まっていることを求めるのではなく、confidenceとprecisionが実際に必要な水準を満たしているかを受け入れ基準にしてください。

避けるべきよくある間違い

空のcomponentsオブジェクトや、いくつかのフィールドが欠けているcomponentsオブジェクトを、失敗したリクエストと同じものとして扱わないでください。失敗したリクエストは、エラーのドキュメントで説明しているとおり、エラーステータスとエラーコードとともに返ってきます。構成要素の少ない成功結果はそれとは別の、まったく普通の結果です。エラー処理で両者を混同すると、有効な住所が失敗として記録され、扱われてしまいます。

却下する代わりに顧客に確認してもらう

番地のない住所の場合、送信を即座に却下するよりも、整形された結果を顧客に表示して確認してもらうほうがうまくいきます。そうすれば、実在する住所を使える状態に保ちつつ、本当に不正確な入力はほかの部分で引き続き見つけられます。

逆方向でも同じパターンになります

何もない田園地帯や水上にある座標を逆ジオコーディングした場合も同様に、特定の建物の敷地上にある座標に比べて、precisionが粗く、埋まっている構成要素が少ない結果が返ってくることがあります。逆ジオコーディングのドキュメントでは、同じprecisionの値をその方向から説明しています。

費用は変わりません

番地のない住所でも、ほかのジオコーディングの検索と同じく1件のリクエストです。構成要素が欠けていても、1日の割り当てやクレジット残高に対するリクエストの課金方法は何も変わりません。

これを正しく扱うには、有効な住所であればすべての構成要素が完全に埋まっているはずだと決めつけず、precisionとconfidenceを本来の意図どおりに読み取ることがほぼすべてです。各フィールドの詳細はジオコーディングのドキュメントで説明しています。