位置データは正常系だけでなくエッジケースでもテストする
よく地図化された市の中心部の住所からは、システムが農村部のルート、係争中の国境、極地付近のクエリをどう扱うかについてほとんど何もわかりません。難しいケースを意図的にテストしてください。
ジオコーディングのレスポンスでは、2つのフィールドが中心的な役割を果たしており、それぞれ異なる問いに答えます。precisionは、見つかった一致の種類、つまり家屋、通り、郵便番号、都市のいずれかを表します。confidenceは0から1までの数値で、入力と利用可能なデータに照らして、その一致にどれだけ確信があるかを表します。結果は、精度が高く信頼度が低い場合もあれば、精度が低く信頼度が高い場合もあり、どちらも有効な結果で、異なる扱いをする価値があります。
例を挙げます。部屋番号付きの完全な番地を検索すると、houseの精度で特定されても、信頼度は0.6になることがあります。入力の通りの名前に誤字があり、ジオコーダーがどの通りを意図しているのかを推測する必要があったからです。都市名だけを検索すると、cityの精度で信頼度0.98として特定されることがあります。妥当な一致が1つしかなく、曖昧さがまったくなかったからです。コードで精度だけを確認していると、2つ目のはるかに安全な結果を、なぜか劣ったものとして扱ってしまいます。実際には、それが示す内容についてはそちらのほうが信頼できるにもかかわらずです。
実践的なルールは、一方を他方の代わりにするのではなく、両方でフィルタリングすることです。配達の手配など、屋根の位置レベルの精度が必要な用途では、precisionがhouseであることと、テストに基づいて設定したしきい値を超えるconfidenceを必須にします。注文がどの都市に発送されたかを知るだけでよいなら、信頼度の高いcityの精度で十分に使えます。houseの精度ではないという理由でそれを却下すると、よいデータを捨てることになります。
また、typeはそれ単独のフィルターではなく、文脈として扱うと役立ちます。typeがaddressで、precisionがstreetであれば、入力は完全な住所のように見えたものの、通りのレベルまでしか一致しなかったことがわかります。これは、ジオコーダーのデータの欠落ではなく、住所そのものが不完全だったか綴りが誤っていた可能性を示す有用なシグナルです。
信頼度の計算方法に共通の標準はないため、プロバイダーが異なる信頼度の数値を直接比較することはできません。この尺度は、正しさの絶対的な確率としてではなく、1つのプロバイダーのレスポンスの中での相対的なものとして扱ってください。代表的なクエリを独自に用意して実行し、自社のデータで、よい一致と悪い一致の信頼度がそれぞれどのあたりに分布するかを確認して、ドキュメント上で妥当に見えた数値ではなく、その結果からしきい値を選んでください。
返される正確な精度の値を含む、両フィールドの詳細はジオコーディングと逆ジオコーディングのドキュメントに記載されています。