gpt4 book ai didi

javascript - 如何限制 Google Geocoding API 的地理编码请求只返回某个国家的城市和邮政编码

转载 作者:搜寻专家 更新时间:2023-11-01 04:41:38 26 4
gpt4 key购买 nike

我想构建一个带有搜索输入的 map 。用户应该能够使用该输入搜索 zip 或 city。这似乎没有很好地记录在 Google Geocoding API 中。或在 Geocoder 的 Javascript API 引用中.

我尝试按如下方式使用地理编码功能:

geocode({ address: inputValue })

但这将在全世界产生结果。

然后我使用了区域和边界:

geocode({ address: this.value, region: 'XX', bounds: myCountryBounds })

这仍然会给出来自整个世界的结果。 (我在其中一个文档页面上读到,regionbounds 仅供引用,并非严格限制,但我找不到该页面了。)

然后我只使用了componentRestrictions:

geocode({ address: this.value, componentRestrictions: { country: 'XX' })

这现在只给我国家 XX 的结果。但它也给了我街道和公司名称。

现在我只想搜索匹配邮政编码和城市。因为如果我搜索 2000,我会发现很多公司名称中都有 2000。那么我如何才能确保仅在邮政编码和城市名称中执行搜索?

最佳答案

作为地理编码器的替代方案,使用 places API 可以实现相同的最终目标(需要 API key )。如果您需要地理编码 api 和地理编码器库的特定内容,我深表歉意。 (我用这个替代方案回答的原因是因为我正在努力实现完全相同并且真的被卡住了)。


TL-DR;替代解决方案:

0.) 获取“places” API key https://code.google.com/apis/console

1.) 发起只返回高级别地区(城市)的请求。
Google Maps places API to only return cities?

2a.)您可以使用第一个请求中返回的引用,通过“places details api”发出请求来跟进。然后将返回纬度/经度。 https://developers.google.com/places/documentation/details#PlaceDetailsRequests

2b.)或者使用第 1 部分中格式良好的“城市、国家/地区”来查询地理编码器 api,并通过保存地点 API 调用来获取纬度/经度。我不确定为什么“type=(regions)”在地理编码 API 上不可用,但它会有所帮助(或者我可能错过了)。


此方法将允许进行文本或邮政编码搜索,并返回纬度/经度以及地址详细信息。我还发现,将组件过滤器与 places api 一起使用比使用地理编码 api 产生的结果要好得多。您可以通过经过验证的帐户免费使用此功能,每天最多可处理 100,000 个请求。

例如)需要API key
1.) https://maps.googleapis.com/maps/api/place/autocomplete/json?input=va&sensor=false&types=(regions)&key=YOUR_API_KEY

2b.) https://maps.googleapis.com/maps/api/place/details/json?reference=CjQtAAAA7uEa6LT_DWvJ-erYl51zOqxcDHT9DMzo6LIQLRIF-g0HekbODavL5hHDleYSioGYEhCULLbxKZBlYZXs-I-EWkGQGhRiXW7LMokjjTp7WZjXE02wNzHkzQ&sensor=false&key=YOUR_API_KEY

关于javascript - 如何限制 Google Geocoding API 的地理编码请求只返回某个国家的城市和邮政编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22322403/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com