Google maps Google Maps API v3地理编码状态正常,即使地理编码街道没有';不存在

Google maps Google Maps API v3地理编码状态正常,即使地理编码街道没有';不存在,google-maps,google-maps-api-3,geocoding,google-geocoder,Google Maps,Google Maps Api 3,Geocoding,Google Geocoder,我刚刚在Google Maps API V3中发现了一个奇怪的行为,更具体地说,是通过它的地理编码工具。 以下是一个示例:这是我如何对地址进行地理编码的: var request = HttpWebRequest.Create(@"http://maps.googleapis.com/maps/api/geocode/json?address=" + address + "&sensor=false"); HttpWebResponse response = (HttpWebRespon

我刚刚在Google Maps API V3中发现了一个奇怪的行为,更具体地说,是通过它的
地理编码工具。
以下是一个示例:这是我如何对地址进行地理编码的:

var request = HttpWebRequest.Create(@"http://maps.googleapis.com/maps/api/geocode/json?address=" + address + "&sensor=false");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
其中,
address
是一个变量,由用户输入完整地址。

当地址为有效地址时,
response.StatusCode
OK
,这意味着“未发生任何错误;已成功解析该地址并返回至少一个地理代码。”
但当用户尝试对该地址进行地理编码时:

里昂69009号街头行家街15号

StatusCode
OK
,返回的纬度/经度是城市的中心(在本例中,里昂是一个真正的法国城市,其对应的zipcode为69009)

这种行为正常吗?当我在中输入相同的地址时,它告诉我它找不到这个地址(这是“好”的行为)。那么,我如何用GMAPSAPI复制它,以便它拒绝使用未知的街道名称添加,即使相关的城市和/或zipcode存在

提前谢谢

结果:

     "partial_match" : true,
     "types" : [ "sublocality", "political" ]

因此,我会检查这两种或至少是
类型,以确定它是否找到了实际的街道地址。

是,这是正常的。返回了一个结果,但不是您期望的结果。如果您在文档中进一步了解,您将看到:

  • 几何图形包含以下信息:
    • 位置
      包含地理编码的纬度、经度值。对于正常地址查找,此 字段通常是最重要的
    • location\u type
      存储有关指定位置的附加数据。以下值为 目前支持的:
      • “roottop”
        表示返回的结果是一个精确的地理编码,我们有精确到街道地址精度的位置信息
      • “插值范围”
        表示返回的结果反映了近似值(通常在道路上) 在两个精确点(例如交点)之间插值。 插值结果通常在屋顶地理代码生成时返回 街道地址不可用
      • “几何中心”
        表示返回的结果是结果的几何中心,例如 多段线(例如街道)或多边形(区域)
      • “近似值”
        表示返回的结果是近似值
您需要检查
位置\u类型
,查看返回结果的“准确性”。在您的案例中,地理编码员无法找到
15 StreetHodoesnTexast
,因此次佳结果是zipcode的中心

与地理编码结果一起返回的
address\u components[]
包含更多信息,您可以使用这些信息更好地了解返回的内容

partial_match
参数将让您知道地理编码器是否没有返回并精确匹配。对于拼写错误或缺少地址部分的情况通常是这样


maps.google.com拒绝该地址的原因是,他们的应用程序内置了自定义逻辑来捕获这些类型的结果。地理编码器只返回原始结果,您需要编写业务逻辑来处理这些结果。

Ok
types
参数正是我要找的,我没有看到这个参数。我会做更深入的测试,但它解决了我的问题,谢谢。对不起,我没有看到文档的这一部分。我使用
类型
参数解决了我的问题,但我将使用您指出的参数进行调查,以改善我的用户体验。也谢谢你!