【发布时间】:2019-11-29 13:06:54
【问题描述】:
Google 地理编码 API 有 component restrictions。
行政区域、国家、地区、邮政编码、路线
我可以使用其中任何一个来按城市和城镇进行过滤吗? 这样我就不会回到国家或州?
有点像
this.geocoder = new google.maps.Geocoder();
this.geocoder.geocode({
address: this.registerForm.get('city').value,
componentRestrictions: {
country: 'US',
locality // not sure here
}
},
(results, status) => {
if (status === google.maps.GeocoderStatus.OK) {}
}
我可以用谷歌地图自动补全!
this.autocomplete = new google.maps.places.Autocomplete(this.element, {
types: ['(cities)']
});
【问题讨论】:
-
locality 过滤器是针对城镇的,但请注意,此过滤器并不严格,它只是偏向于在 locality 内搜索地址。实际结果可能在外面。此外,地理编码通常只返回一个结果(最佳匹配),它不像自动完成服务。如果您的意图是从地理编码服务中获取城市列表,它将无法正常工作。
-
我的意图是只获取一个结果,但将其限制在一个国家/地区,例如我正在做的一个城市和/或城镇。我不希望在输入中输入文本的用户能够获取州或国家/地区的结果。这是一个约会网站,我试图在不让用户输入确切地址的情况下获得最近的大致位置(城市/城镇)!!
-
如果我可以使用locality,你能提供一个例子吗?
-
不确定它是否适用于所有情况,但
https://maps.googleapis.com/maps/api/geocode/json?components=locality%3AHouston%7Ccountry%3AUS&key=YOUR_API_KEY之类的东西似乎返回城市“美国德克萨斯州休斯顿”。 -
这是网址,我需要一个以编程方式使用 API 的示例
标签: javascript google-places-api google-geocoding-api