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_INTERPOLATED
或APPROXIMATE
.
屋顶基本上"死了" - API解析了建筑物的地址.除此之外,你会得到不同程度的"接近".我的解决方案是使用返回的边界框来确定close的接近程度.所以如果你要一条街(美洲大道,纽约,纽约),你会得到一个巨大的边界框.在那条街上要求API认为是实际地址但不是屋顶的地址,你会得到一个非常小的边界框.我使用边界框的区域来确定结果的准确性.我准确/不准确的突破是在0.9E-6,但我认为你必须修补它以确保你对这个数字感到满意.
我发现在更新依赖于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)
归档时间: |
|
查看次数: |
5294 次 |
最近记录: |