【发布时间】:2021-06-23 04:17:21
【问题描述】:
我需要一些有关 Google 自动完成功能的帮助。我是后端开发人员,所以我在前端不是很好:D
我有 2 个自动完成输入(取货地址和送货地址)。我们的工作区在柏林,所以如果用户在柏林地区输入取货地址,则投递地址可以是世界上任何其他地方如果用户在取件输入中输入柏林以外的地址,投递地址只需在柏林地区。
我写了类似的东西,但真的很丑而且不能正常工作
var polygon;
var bounds;
async function autocompletePickup() {
polygon = new google.maps.Polygon({
path: area,
geodesic: true,
strokeColor: '#FFd000',
strokeOpacity: 1.0,
strokeWeight: 4,
fillColor: '#FFd000',
fillOpacity: 0.35
});
var input = document.getElementById('pickup-address11');
var autocomplete = new google.maps.places.Autocomplete(input);
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
if (google.maps.geometry.poly.containsLocation(place.geometry.location, polygon)) {
alert('The address is within');
autocompleteDrop(1);
} else {
// alert('The address is outside of the area.');
// input.value = "";
// autocompleteDrop(withinArea=false);
};
});
}
async function autocompleteDrop(withinArea) {
var inside = withinArea;
polygon = new google.maps.Polygon({
path: area,
geodesic: true,
strokeColor: '#FFd000',
strokeOpacity: 1.0,
strokeWeight: 4,
fillColor: '#FFd000',
fillOpacity: 0.35
});
if (inside === 1) {
var input = document.getElementById('dropoff-address22');
autocomplete = new google.maps.places.Autocomplete(input, options);
input.addEventListener("change", function() {
// input.value = "";
console.log(inside);
});
} else {
var input = document.getElementById('dropoff-address22');
var autocomplete = new google.maps.places.Autocomplete(input);
autocomplete.addListener('place_changed', function() {
var place = autocomplete.getPlace();
if (google.maps.geometry.poly.containsLocation(place.geometry.location, polygon)) {
} else {
alert('The drop off address is outside of our area.');
input.value = "";
};
});
}
}
// berlin area
var area = [
{ lat: 53.804069, lng: 14.124429 },
{ lat: 52.016925, lng: 13.959028 },
{ lat: 52.037322, lng: 11.438104 },
{ lat: 52.888570, lng: 8.804136 },
{ lat: 54.148454, lng: 9.626415 }
];
抱歉英语不好
【问题讨论】:
标签: javascript google-maps autocomplete