gpt4 book ai didi

angular - 使用 Angular 指定 Google Places 自动完成的起始位置

转载 作者:太空狗 更新时间:2023-10-29 17:38:45 24 4
gpt4 key购买 nike

我正在使用 Google Places Autocomplete API 和 AGM 提供的 Angular .效果很好,但我无法手动设置起始位置。意思是,如果我坐在洛杉矶的电脑前,我希望能够告诉 API 返回结果,就像我在波士顿一样。我相信这在谷歌端是可能的,基于 their documentation ,但我还没有弄清楚如何在我使用的 Angular 组件中执行此操作。

有人知道如何让它工作吗?下面是我的组件的相关部分。谢谢!

  setGoogleMapsAutocomplete() {
this.mapsAPILoader.load().then(() => {
let autocomplete = new google.maps.places.Autocomplete(this.searchElementRef.nativeElement, {
types: ["address"]
});
autocomplete.addListener("place_changed", () => {
this.ngZone.run(() => {
let place = autocomplete.getPlace();

this.address = '';

for (var i = 0; i < place.address_components.length; i++)
{
var addressType = place.address_components[i].types[0];

if (this.hasOwnProperty(addressType)) {
let nameLength = addressType == 'administrative_area_level_1' ? 'short_name' : 'long_name';

this[addressType] = place.address_components[i][nameLength];
}
}
this.error = false;
});
});
});
}

最佳答案

显然您一直在使用此示例中的代码 https://brianflove.com/2016/10/18/angular-2-google-maps-places-autocomplete/

您是否尝试添加 location 键并将 lat,lon 作为值传递给作为第二个参数传递给 google.maps 的对象。 places.Autocomplete.所以它应该是这样的:

    let autocomplete = new google.maps.places.Autocomplete(this.searchElementRef.nativeElement, {
types: ["address"],
radius: 50000,
location: `${this.latitude}, ${this.longitude}`
});

我为您创建了一个 stackblitz 沙箱 https://stackblitz.com/edit/angular-google-maps-demo-qwrngk

随意尝试,但不要忘记更改 API key ,因为我的配额似乎已超出。

更新

您还需要设置返回位置结果的半径

关于angular - 使用 Angular 指定 Google Places 自动完成的起始位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54430942/

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