Google 地理编码 API - 相关性
Google Geocode API - Relevance
我是另一个付费地理编码服务的客户,目前正在评估 Google 的地理编码 API。我知道已经有很多问题,但我还没有找到答案。
这个问题请运行自行查询了解。
正确的街道是 "semptstr." 运行如果查询中有一个小的拼写错误 "semstr" 将会产生令人困惑的结果。
https://maps.googleapis.com/maps/api/geocode/json?address=semstr. 21 85457 woerth Germany&key={{YOUR KEY}}
如果您对上面的地址进行地理编码,它会打印 location_type "ROOFTOP",我认为这是直接匹配。
地址地理编码如下
{
"results" : [
{
"address_components" : [
{
"long_name" : "21",
"short_name" : "21",
"types" : [ "street_number" ]
},
{
"long_name" : "Seestraße",
"short_name" : "Seestraße",
"types" : [ "route" ]
},
{
"long_name" : "Rettenbach",
"short_name" : "Rettenbach",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Oberpfalz",
"short_name" : "Oberpfalz",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Bayern",
"short_name" : "BY",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Deutschland",
"short_name" : "DE",
"types" : [ "country", "political" ]
},
{
"long_name" : "93191",
"short_name" : "93191",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "Seestraße 21, 93191 Rettenbach, Deutschland",
"geometry" : {
"location" : {
"lat" : 49.07218,
"lng" : 12.45707
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 49.07352898029149,
"lng" : 12.4584189802915
},
"southwest" : {
"lat" : 49.07083101970849,
"lng" : 12.4557210197085
}
}
},
"partial_match" : true,
"place_id" : "ChIJHdXdJbnhn0cRgImKyuFq2UM",
"types" : [ "street_address" ]
}
],
"status" : "OK"
}
如果您查看结果,它会显示 ROOFTOP 并且没有关于准确性的字段。我认为 ROOFTOP 是完全匹配的。
实际上它甚至没有关闭查询的位置。邮政编码 93191 在另一个城市,相距约 150 公里。
我正在寻找相关参数。我知道 APPROXIMATE,INTERPOLATED 存在,但在这种情况下它不会显示在结果中。
在我的案例中,这样的结果不能用于严肃的生产或商业应用程序,除非我错过了一个额外的查询参数。
边界框也不行,因为我没有城市的坐标。它会让我 运行 查询两次,这将导致双倍的成本和双倍的使用。
比较邮政编码只会导致函数的行为非常严格。
那么,如何根据查询发现地址不完全匹配呢?有没有我遗漏的参数?
我找不到这方面的任何官方文档,但浏览了这个社区的一些答案后,我发现 ROOFTOP 意味着最准确的结果。
根据发布的答案here and here-
API 将 return ROOFTOP、GEOMETRIC_CENTER、RANGE_INTERPOLATED 或 APPROXIMATE。
屋顶本质上是 "dead on" -- API 将地址解析为建筑物。除此之外,你会得到不同程度的"close"。
"ROOFTOP" -> 9
[Everything else] -> 4 到 8(又名文本字符串也可以阅读 "GARBAGE")
查明地址是否完全匹配的一种好方法是使用地址验证。有许多提供此功能的服务,例如 MelissaData、Everything Location 和 SmartyStreets。
这是 SmartyStreets 的输出结果示例
一个。 semstr. 21 85457 woerth Germany
乙。 semptstr. 21 85457 woerth Germany
请注意 B
如何显示地址已完全验证,因此比 A
更正确。 (看分析部分)。
关于地址是否被验证的信息会告诉你地址是否完全匹配。
免责声明:我为 SmartyStreets 工作。
使用 api 时,您可以将结果限制在边界框中。该计算将产生近似结果类型。如果未在框中找到,则不会 return 编辑任何结果。您还可以限制区域:“®ion=zyx”
您也可以使用组件限制它。组件可以是任何东西,例如邮政编码、邮政编码。诀窍是,当没有找到结果时,api 将 return 来自组件本身的结果。我认为这就是这里正在发生的事情。
我看到您的状态代码 returns "OK",这表明系统认为您得到了正确的结果。
可能是您需要更改过滤组件以确保行政边界与政治边界不同。
我是另一个付费地理编码服务的客户,目前正在评估 Google 的地理编码 API。我知道已经有很多问题,但我还没有找到答案。
这个问题请运行自行查询了解。
正确的街道是 "semptstr." 运行如果查询中有一个小的拼写错误 "semstr" 将会产生令人困惑的结果。
https://maps.googleapis.com/maps/api/geocode/json?address=semstr. 21 85457 woerth Germany&key={{YOUR KEY}}
如果您对上面的地址进行地理编码,它会打印 location_type "ROOFTOP",我认为这是直接匹配。
地址地理编码如下
{
"results" : [
{
"address_components" : [
{
"long_name" : "21",
"short_name" : "21",
"types" : [ "street_number" ]
},
{
"long_name" : "Seestraße",
"short_name" : "Seestraße",
"types" : [ "route" ]
},
{
"long_name" : "Rettenbach",
"short_name" : "Rettenbach",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Oberpfalz",
"short_name" : "Oberpfalz",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Bayern",
"short_name" : "BY",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Deutschland",
"short_name" : "DE",
"types" : [ "country", "political" ]
},
{
"long_name" : "93191",
"short_name" : "93191",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "Seestraße 21, 93191 Rettenbach, Deutschland",
"geometry" : {
"location" : {
"lat" : 49.07218,
"lng" : 12.45707
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 49.07352898029149,
"lng" : 12.4584189802915
},
"southwest" : {
"lat" : 49.07083101970849,
"lng" : 12.4557210197085
}
}
},
"partial_match" : true,
"place_id" : "ChIJHdXdJbnhn0cRgImKyuFq2UM",
"types" : [ "street_address" ]
}
],
"status" : "OK"
}
如果您查看结果,它会显示 ROOFTOP 并且没有关于准确性的字段。我认为 ROOFTOP 是完全匹配的。
实际上它甚至没有关闭查询的位置。邮政编码 93191 在另一个城市,相距约 150 公里。
我正在寻找相关参数。我知道 APPROXIMATE,INTERPOLATED 存在,但在这种情况下它不会显示在结果中。
在我的案例中,这样的结果不能用于严肃的生产或商业应用程序,除非我错过了一个额外的查询参数。
边界框也不行,因为我没有城市的坐标。它会让我 运行 查询两次,这将导致双倍的成本和双倍的使用。
比较邮政编码只会导致函数的行为非常严格。
那么,如何根据查询发现地址不完全匹配呢?有没有我遗漏的参数?
我找不到这方面的任何官方文档,但浏览了这个社区的一些答案后,我发现 ROOFTOP 意味着最准确的结果。
根据发布的答案here and here-
API 将 return ROOFTOP、GEOMETRIC_CENTER、RANGE_INTERPOLATED 或 APPROXIMATE。 屋顶本质上是 "dead on" -- API 将地址解析为建筑物。除此之外,你会得到不同程度的"close"。
"ROOFTOP" -> 9 [Everything else] -> 4 到 8(又名文本字符串也可以阅读 "GARBAGE")
查明地址是否完全匹配的一种好方法是使用地址验证。有许多提供此功能的服务,例如 MelissaData、Everything Location 和 SmartyStreets。
这是 SmartyStreets 的输出结果示例
一个。 semstr. 21 85457 woerth Germany
乙。 semptstr. 21 85457 woerth Germany
请注意 B
如何显示地址已完全验证,因此比 A
更正确。 (看分析部分)。
关于地址是否被验证的信息会告诉你地址是否完全匹配。
免责声明:我为 SmartyStreets 工作。
使用 api 时,您可以将结果限制在边界框中。该计算将产生近似结果类型。如果未在框中找到,则不会 return 编辑任何结果。您还可以限制区域:“®ion=zyx” 您也可以使用组件限制它。组件可以是任何东西,例如邮政编码、邮政编码。诀窍是,当没有找到结果时,api 将 return 来自组件本身的结果。我认为这就是这里正在发生的事情。 我看到您的状态代码 returns "OK",这表明系统认为您得到了正确的结果。 可能是您需要更改过滤组件以确保行政边界与政治边界不同。