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

时间:2018-01-30 15:20:24

标签: google-maps google-maps-api-3 geocoding

我们正在使用Google Maps API搜索以对地址进行地理编码。 问题是没有办法将API请求地址字段分解为其组件。

{
  address: string,
  location: LatLng,
  placeId: string,
  bounds: LatLngBounds,
  componentRestrictions: GeocoderComponentRestrictions,
  region: string
}

因为我们无法将其分解为

{
  city: city
  street: street
  ...
}

我们得到的结果很奇怪,例如" XX MyStreet st。,MyCity"

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

有没有办法将Google地图标记为" MyCity"是一个城市,而不是一个县。

1 个答案:

答案 0 :(得分:2)

我已经看过你的样本地址' Lilach 27,Beer Sheva,Israel'。我们在Geocoder工具中查看它:

https://google-developers.appspot.com/maps/documentation/utils/geocoder/#q%3DLilach%252027%252C%2520Beer%2520Sheva%252C%2520Israel

正如您所看到的,这个地址显然位于Omer所在地。因此,地址组件locality = Omer似乎在这里是正确的。

http://maps.google.com/maps?cid=0x1502676f35a89239:0xd3092fa77576ecf6

enter image description here

请参阅administrative_area_level_2 = Be'er Sheva,请注意Google的管理区域中包含此名称,您可以在此处查看

http://maps.google.com/maps?cid=0x1501934b23af369b:0x31b08b946bdd4342

enter image description here

所以,此时看起来响应是正确的。

如果您认为行政区域应该有其他名称或地址应位于不同的地方,请{GS} send feedback。另请注意,地理编码器中的结果类型为RANGE_INTERPOLATED,地点ID为EiHXnNeZ15zXmiAyNywg16LXldee16gsINeZ16nXqNeQ15w。通常这些以E开头的地点ID意味着该地址不存在于数据库中并被插值。您可以在帮助中心后向Google报告丢失的地点:

https://support.google.com/maps/answer/6320846

我希望我的回答能澄清你的怀疑!