我正在使用Google Places API,以便会员可以添加他们的位置。然后我将这些信息保存在我的数据库中。现在我想搜索来自“哥本哈根”的所有成员。但是这是个问题,因为那些已经使用完整地址保存在丹麦语名称“København”下的成员。对于所有居住在具有不同本地和英文名称的城市的成员也是如此。更糟糕的是,似乎强制address_components(这里是特定于地点的)使用英语并不可行?
我很确定我已经强制将Place API设置为英语,因为国家是正确的。这里是“Denmark”,而不是“Danmark”。
我如何使用Google Places。首先,我注册脚本:
下一步,我将在我的输入元素上添加Google地点自动完成功能:
我很确定我已经强制将Place API设置为英语,因为国家是正确的。这里是“Denmark”,而不是“Danmark”。
我如何使用Google Places。首先,我注册脚本:
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBQuOpK6nVv7bmGJbB6WoZcnWxKE2yGIGM&libraries=places&language=en"></script>
下一步,我将在我的输入元素上添加Google地点自动完成功能:
var autocompleteElm = <HTMLInputElement>document.getElementById('autocomplete');
if (autocompleteElm) {
this.autocomplete = new google.maps.places.Autocomplete(
(autocompleteElm), {
types: ['geocode']
});
}
最后但并非最不重要的是,当成员点击保存按钮后,我通过调用API收集数据:
this.autocomplete.getPlace();
这是一个使用TypeScript编写的Angular2组件。
我克隆了谷歌上的Fiddle示例来说明我的问题: https://jsfiddle.net/dnrn/71t99yzs/
如果你搜索“Dortheavej”,它会显示城市为“København”,而不是“Copenhagen”。
更糟糕的是,有时候不是来自“language=en”的国家/地区信息,而是来自成员本地信息。
postal_code
是有问题的。例如,考虑到 OP 的原始问题是 "København",包括postal_code
仍然会得到 "København"。如果您删除邮政编码并只发送 "København, Denmark",它就可以工作了,即返回 "哥本哈根" 作为所在地。我可能会用重试来实现这个功能。首先尝试使用postal_code
,如果所在地不同,则很好,使用该所在地。如果所在地相同,则尝试不使用postal_code
。 - Hooloovoo13