10

我有一些代码要从 API v2 移植到 v3。在旧代码中,我们在 xml 中返回了一个准确度字段(不确定名称,但它确实代表了某种置信度)。在新的 API 中,我看不到任何这样的字段。

如果我在搜索字段中输入“俄勒冈州,美国”,我会得到 5 个匹配项。前 2 个是“美国俄勒冈州”和“美国俄勒冈州俄勒冈州”。他们都有“partial_match”= false。这似乎不对,一个似乎是局部的,一个则不是。另外,他们都以相同的“location_type”(近似值)返回。事实上,所有匹配都显示为非部分并且具有相同的位置类型。

我的问题是,结果集中的任何字段是否传达了对结果准确性的某种信心?在我的示例中,似乎一个结果确实比任何其他结果都准确得多——以至于输入字符串与返回的 QuickAddress 字段完全匹配。

4

2 回答 2

14

两周,没有答案,所以这是我的解决方案。

API将返回ROOFTOPGEOMETRIC_CENTER或。RANGE_INTERPOLATEDAPPROXIMATE

Rooftop 本质上是“死的”——API 将地址解析为建筑物。除此之外,您会获得不同程度的“关闭”。我的解决方案是使用返回的边界框来确定距离有多近。因此,如果您要求一条街道(美洲大道,纽约州,纽约州),您将得到一个巨大的边界框。请求 API 认为是实际地址但不是屋顶的那条街道上的地址,您会得到一个非常小的边界框。我使用边界框的面积来确定结果的准确性。我的准确/不准确突破是 0.9E-6,但我认为你必须修改它以确保你对这个数字感到满意。

于 2011-10-27T21:02:13.830 回答
5

我发现这在更新依赖于 0 到 9 分数的旧 V2 代码时很有用
//Hack to convert location_type (string) to 0-9 Geocode score as 0-9 Geocode score doesn't exist in v3 API

function get_numeric_score(results) {
switch(results[0].geometry.location_type){
        case "ROOFTOP":
            return 9;
        break;

        case "RANGE_INTERPOLATED":
            return 7;
        break;

        case "GEOMETRIC_CENTER":
            return = 6;
        break;

        case "APPROXIMATE":
            return 4;
        break;

        default:
            return 0;

    }
}
于 2014-10-30T03:23:27.533 回答