我在 Angular 2 项目中使用谷歌自动完成位置,它在下拉列表中填充位置。我有一个新要求。如果用户在一个名为 ABD 的地方,在下拉列表中进行搜索时,它必须首先显示 ABD 而不是 ABC,这意味着离用户最近的地方必须首先出现在下拉列表中。
我写的自动完成位置代码如下
autoCompleteLocation() {
this.mapsAPILoader.load().then(() => {
let autocomplete = new google.maps.places.Autocomplete(this.searchElementRef.nativeElement, {
});
autocomplete.addListener("place_changed", () => {
this.ngZone.run(() => {
//get the place result
let place: google.maps.places.PlaceResult = autocomplete.getPlace();
//verify result
if (place.geometry === undefined || place.geometry === null) {
return;
}
//set latitude, longitude and zoom
this.LocInsertObj.PreLocation = place.formatted_address; //place.name;
this.LocInsertObj.PreLocation = this.LocInsertObj.PreLocation.indexOf(place.name) < 0 ? place.name + ", " + this.LocInsertObj.PreLocation : this.LocInsertObj.PreLocation;
this.LocInsertObj.PreLocationLat = place.geometry.location.lat();
this.LocInsertObj.PreLocationLong = place.geometry.location.lng();
this.LocInsertObj.zip = 123;
this.isCurrentLocationSet = true;
$(".userProfile-container").trigger("click");
$("#location").focus();
});
});
});
}