我有一个使用Google Places Autocomplete的Angular应用程序。我用它来帮助人们轻松地找到联系地址,就像这样
https://developers.google.com/maps/documentation/javascript/examples/places-autocomplete
用户提交地址作为联系地址后,会将其保存在SQL数据库中,该数据库包括其位置ID(Google的位置ID)。
现在,用户刷新网页后,我想从数据库中存储的位置ID预填充位置自动完成输入。 Google的文档非常混乱,我不确定实现此目的的正确方法是什么,这并不难。我期待类似的东西
var autocomplete = google.maps.places.Autocomplete.initFromPlaceId(_inputRef: HTMLInputElement, _placeId: string)
但是我找不到简单的解决方案。任何更难的事情,似乎都想得太多了。也许有一些行业专业知识的人可以帮助我。
谢谢
#Edit 1
我找到了一种通过其ID检索地点的方法,就像这样
let placesService = new google.maps.places.PlacesService( this.xxx.nativeElement );
placesService.getDetails({placeId: 'xxxxxxxxxxx-Wo'}, function( _result, _status) {
console.log( _result, _status );
});
但是对于如何使用此值重新初始化实际的地点自动完成字段仍然没有任何看法。
#Edit 2
我目前只是将自动完成容器的HTML值设置为已加载地址的地址字符串。仍在寻找将唯一ID加载到该HTML输入中的正确解决方案,但是这种中间解决方案似乎也可以工作。只是如果Google更改了搜索结果或搜索结果顺序,搜索结果可能不一定总是1v1。