v3 Google Maps Geocoding API是否有一个代表准确性的字段?

时间:2011-09-19 16:18:21

标签: google-maps geocoding google-geocoder google-geocoding-api

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

如果我将“俄勒冈州,美国”放入搜索栏,我会获得5场比赛。前两个是“俄勒冈州,美国”和“俄勒冈州,俄亥俄州,美国”。他们都有“partial_match”= false。这似乎不对,一个似乎是偏袒的,一个不是。另外,他们都回来了相同的“location_type”(APPROXIMATE)。实际上,所有匹配都显示为非局部且具有相同的位置类型。

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

2 个答案:

答案 0 :(得分:13)

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

API将返回ROOFTOPGEOMETRIC_CENTERRANGE_INTERPOLATEDAPPROXIMATE

Rooftop基本上“死了” - API解析了建筑物的地址。除此之外,你会得到不同程度的“接近”。我的解决方案是使用返回的边界框来确定close的接近程度。所以如果你要一条街(美洲大道,纽约,纽约),你会得到一个巨大的边界框。在那条街上要求API认为是实际地址但不是屋顶的地址,你会得到一个非常小的边界框。我使用了边界框的区域来确定结果的准确性。我准确/不准确的突破是在0.9E-6,但我认为你必须修补它以确保你对这个数字感到满意。

答案 1 :(得分:4)

我发现在更新依赖于0到9分的传统V2代码时这很有用     // Hack将location_type(字符串)转换为0-9 Geocode得分为0-9地理编码得分在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;

    }
}