Google maps Google Maps API v3地理编码状态正常,即使地理编码街道没有';不存在
我刚刚在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
地理编码工具。
以下是一个示例:这是我如何对地址进行地理编码的:
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拒绝该地址的原因是,他们的应用程序内置了自定义逻辑来捕获这些类型的结果。地理编码器只返回原始结果,您需要编写业务逻辑来处理这些结果。Oktypes
参数正是我要找的,我没有看到这个参数。我会做更深入的测试,但它解决了我的问题,谢谢。对不起,我没有看到文档的这一部分。我使用类型
参数解决了我的问题,但我将使用您指出的参数进行调查,以改善我的用户体验。也谢谢你!