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

Posted

技术标签:

【中文标题】v3 Google Maps Geocoding API 是不是有代表准确性的字段?【英文标题】:Does the v3 Google Maps Geocoding API have a field that represents accuracy?v3 Google Maps Geocoding API 是否有代表准确性的字段? 【发布时间】:2011-11-20 09:43:15 【问题描述】:

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

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

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

【问题讨论】:

【参考方案1】:

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

API 将返回 ROOFTOPGEOMETRIC_CENTERRANGE_INTERPOLATEDAPPROXIMATE

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

【讨论】:

非常聪明。不会想到这一点。我对我们的“非屋顶”地址进行了一些测试,发现范围很大。我们有四个细分,屋顶、街道(即街区或 ZIP+4)、ZIP+2 和 ZIP。对于每个谷歌非屋顶位置类型,我创建了逻辑来进一步分析准确性,因为有时 APPROXIMATE 最终更像 ZIP+4(在城市地区通常非常接近屋顶),而 RANGE_INTERPOLATED 更像 ZIP,即巨大的。 我注意到的另一件事是,有时 Google 只为 ROOFTOP 提供街道地址,但添加套件/单元/apt/whatever... 使其切换到 APPROXIMATE 即使纬度/经度保持不变.这就是你的想法派上用场的地方。其他时候只是街道地址近似,同时添加子单元使其切换到屋顶。我看到了更多的第一个,即更多的数据,更少的“信心”。我正在考虑建立逻辑以首先尝试不使用子单元,如果不是 ROOFTOP 则尝试使用子单元。如果仍然不是 ROOFTOP,则比较边界框并使用较小的。 @AndrewS 谢谢,我觉得我是互联网这个特定角落中唯一的人——我记得从来没有在谷歌群组上得到答案......【参考方案2】:

我发现这在更新依赖于 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;

    

【讨论】:

以上是关于v3 Google Maps Geocoding API 是不是有代表准确性的字段?的主要内容,如果未能解决你的问题,请参考以下文章

Google Maps Geocoding API(如何获取纬度/经度)

Google Maps API V3 使用限制是按网站访问者还是按 Web 服务器?

php Ejemplo API Rest - Google Maps Geocoding

Google Maps Geocoding API - 使用 API 密钥拒绝请求

Google Maps Geocoding API,其 JS api 中缺少的 API 功能(?)

Google Maps Geocoding API 使用限制