Google maps 我们如何强制谷歌地图匹配城市组件

Google maps 我们如何强制谷歌地图匹配城市组件,google-maps,google-maps-api-3,geocoding,Google Maps,Google Maps Api 3,Geocoding,我们正在使用谷歌地图API进行搜索,以对地址进行地理编码。 问题是没有办法将API请求地址字段断开到其组件 { address: string, location: LatLng, placeId: string, bounds: LatLngBounds, componentRestrictions: GeocoderComponentRestrictions, region: string } 既然我们不能打破它 { city: city street: s

我们正在使用谷歌地图API进行搜索,以对地址进行地理编码。 问题是没有办法将API请求地址字段断开到其组件

{
  address: string,
  location: LatLng,
  placeId: string,
  bounds: LatLngBounds,
  componentRestrictions: GeocoderComponentRestrictions,
  region: string
}
既然我们不能打破它

{
  city: city
  street: street
  ...
}
我们得到了奇怪的结果,例如“XX MyStreet st.,MyCity”

返回结果,其中MyCity为县,城市为完全不同的城市


有没有办法在谷歌地图上标明“MyCity”是一个城市而不是一个县。

我已经看过了您的示例地址“以色列比尔舍瓦Lilach 27”。让我们在Geocoder工具中查看它:

正如你所看到的,这个地址显然位于奥马尔地区内部。所以地址组件
locality=Omer
在这里似乎是正确的

参考
管理区\u level\u 2=Be'er Sheva
,请注意谷歌有这个名称的管理区,您可以在这里看到它

所以,在这一点上,看起来反应是正确的

如果您认为行政区域应该有另一个名称或地址应该位于不同的地方,请访问谷歌。另外,请注意,地理编码器中的结果类型为
RANGE_INTERPOLATED
,位置ID为
EiHXnNeZ15zXmiAyNywg16LXldee16gsINeZ16nXqNeQ15w
。通常,这些以E开头的位置ID意味着数据库中不存在地址,并且是插值的。您可以通过帮助中心向Google报告缺少的位置:


我希望我的回答能澄清你的疑虑

我真的可以请你提供一个预期行为的例子,而不是你在结果中实际看到的例子吗?例如,“Lilach 27,Beer Sheva,Israel”城市应该是Beer Sheva,但谷歌地图返回的结果是Beer Sheva county。我们似乎在处理两个问题。第一个问题是,你是否可以强制谷歌地图匹配城市组件。不能操作来自服务器的结果,但可以过滤应用程序中需要的信息。第二个问题是关于质疑具体结果的准确性。我不会详细说明,但在这种情况下,没有错误,应该是正确的。最初的问题,至少对我来说,似乎相当广泛,我没有一个具体的代码片段来帮助你。我如何过滤?假设用户写啤酒舍瓦时有一些小的打字错误,我可以区分这两种情况,但这正是问题所在。有没有办法表明谷歌地图上的“啤酒舍瓦”是一个城市,而不是一个2级行政区?我们无法区分谷歌在城市名称上的拼写错误和这个错误的结果。你知道这个地址的确切位置吗?向谷歌数据团队报告,这将在将来解决这个问题。除了在他们的数据库中添加一个屋顶地址外,我不知道其他任何方法。我知道确切的地址,我已经报告了,但这不是问题所在,我有很多类似的例子。