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

jco*_*lum 10 google-maps geocoding google-geocoder google-geocoding-api

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

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

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

jco*_*lum 13

两个星期,没有答案,所以这是我的解决方案.

该API将返回ROOFTOP,GEOMETRIC_CENTER,RANGE_INTERPOLATEDAPPROXIMATE.

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


Jer*_*eys 5

我发现在更新依赖于0到9分数的旧版V2代码时,此功能很有用
// //不能将location_type(字符串)转换为0-9 Geocode分数,因为v3 API中不存在0-9 Geocode分数

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;

    }
}
Run Code Online (Sandbox Code Playgroud)