Javascript Google Places API-返回无效的街道号码

Javascript Google Places API-返回无效的街道号码,javascript,google-maps,google-places-api,google-places,Javascript,Google Maps,Google Places Api,Google Places,如果我搜索500白金汉宫,八英里平原Google Places API返回500白金汉宫,八英里平原,昆士兰,澳大利亚,地点id为EJ41MDAGQNVJA2LUZ2HHBSBGBGFJZSWGRWLNAHGTWLSZSSBQBGFBNMISIF1ZWUC2XHBMSIEF1C3RYWYXPYQ。如果我随后对该地点id进行详细查询,它将返回澳大利亚昆士兰州八英里平原4113号白金汉宫 这可以在谷歌地图网站上复制,网址为。返回的地点将是澳大利亚昆士兰州八英里平原4113号白金汉宫 我可以让Goog

如果我搜索
500白金汉宫,八英里平原
Google Places API返回
500白金汉宫,八英里平原,昆士兰,澳大利亚
,地点id为
EJ41MDAGQNVJA2LUZ2HHBSBGBGFJZSWGRWLNAHGTWLSZSSBQBGFBNMISIF1ZWUC2XHBMSIEF1C3RYWYXPYQ
。如果我随后对该地点id进行详细查询,它将返回澳大利亚昆士兰州八英里平原4113号白金汉宫

这可以在谷歌地图网站上复制,网址为。返回的地点将是澳大利亚昆士兰州八英里平原4113号白金汉宫

我可以让Google Places API只返回实际街道号码的搜索结果吗

编辑 我正在打的电话来自:

地址按从最佳到最少匹配的顺序返回。 一般来说,更准确的地址是最显著的结果,因为 在这种情况下是这样的。请注意,我们返回不同类型的地址, 从最具体的街道地址到不太具体的政治地址 社区、市、县、州等实体

所以问题是,当你添加一个不存在的街道号码时,会返回一个不完美匹配。下面是如何找出答案是否不完全匹配:

再进来

部分匹配表示地理编码器没有返回准确的 匹配原始请求,尽管它能够匹配 请求的地址

如果你做一些测试,你会发现当一个街道号码不存在时(或者地址无效,或者你没有为一个唯一的地址提供足够的信息),它会返回一个变量partial_match:true和一个或多个相近的匹配,如图所示。

我用autocomplete和geocoder做了一个简单的例子:, 当部分匹配为true时,它返回“无效结果”

if (results[0].partial_match) {
  htmlContent = "not a valid result";
  } else {
  [...]
}

注意:谷歌地图的数据可能不会100%准确。

您是如何进行搜索的?您使用的是web服务还是Google Maps Javascript API v3 Places库?@geocodezip我添加了一个API调用示例我不理解这个问题。例如,您想输入什么以及得到什么作为答案?@TomKarachristos它将从自动完成api返回一个不存在的街道编号的结果。在这种情况下,我不希望它返回结果。在我的示例中,白金汉宫的街道编号仅为52,但您可以搜索高于该编号的任何数字,并且自动完成api仍会将其作为有效地点返回。这适用于所有街道。我使用的是自动完成api(),而不是地理编码api。我看不到部分内容与来自自动完成API的任何请求相匹配。自动完成API提供了函数getPlace(),该函数提供的位置信息多于地图地址信息,因此您必须将其与地理编码器一起使用,以获取所需信息。再次看到小提琴,我更新了它。所以似乎没有办法不在自动完成中显示一个无效的地址。谢谢你的帮助。如果你愿意,你可以尝试从一开始就使用jquery ui进行自动完成,这需要做很多工作,但通过这种方式,你可以完全控制。这里有一个例子