#javascript #loops #for-loop #geocoder
Вопрос:
Я играю с API Google maps и пытался ввести массив почтовых индексов и нарисовать линии на карте между каждым местоположением. Проблема, с которой я сталкиваюсь, заключается в том, что из-за асинхронного поведения линии рисуются не в правильном порядке и каждый раз отличаются. Есть ли простой способ отредактировать этот код, чтобы геокодер прошел полный цикл, прежде чем сделать следующий запрос?
const geocoder = new google.maps.Geocoder();
for(let i = 0; i < array1.length; i ){
geocoder.geocode( { address: array1[i]}, function(results, status) {
if (status == 'OK') {
markers.push(results[0].geometry.location);
if(markers.length > 0){
const line = new google.maps.Polyline({
path: [
markers[i-1],
markers[i],
],
strokeOpacity: 0,
icons: [{
icon: lineSymbol,
offset: "0",
repeat: "20px",
},
],
map: map,
});
}
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location
});
} else {
alert('Geocode was not successful for the following reason: ' status);
}
});
}