Получить геоданные массива адресов

173
08 октября 2019, 12:50

Есть массив адресов. Мне нужно получить координаты этих адресов и отобразить их на карте. Я сделал это через цикл, по одному. Есть ли способ сделать это более элегантно, за 1 запрос?

const arrAddress = ["Avenida Diagonal 161-163, Barcelona, 8018, Spain", "MVia Antonello da Messina 45 Aci Castello, Catania, 95021, Italy" ]
const listCoords = [];
function initMap(){
  map = new google.maps.Map(document.getElementById('map'), {});
  arrAddress.forEach(item => {
    geocodeAddress(item).then(results => {
      const lat = results[0].geometry.location.lat();
      const lng = results[0].geometry.location.lng();
      listCoords.push(new google.maps.LatLng(lat, lng));
      createMarker(results[0].geometry.location, map)
      if(listCoords.length === arrAddress.length){
        const bounds = extendBounds(listCoords);
        map.setCenter(bounds.getCenter());
        map.fitBounds(bounds);
      }
    })
  })
}
    function geocodeAddress(address) {
  const geocoder = new google.maps.Geocoder();
  return new Promise((resolve, reject)=>{
    geocoder.geocode({'address': address}, function(results, status) {
      if (status === 'OK') {
        return resolve(results)
      } 
    });
  })
}
function createMarker(position, map){
  const marker = new google.maps.Marker({
    position: position,
    map: map,
  });
  return marker;
}
function extendBounds(listCoords){
  const bounds = new google.maps.LatLngBounds();
  listCoords.forEach(item => {
    bounds.extend(item)
  })
  return bounds;
}
READ ALSO
Получение данных с сайта www.investing.com в google sheets

Получение данных с сайта www.investing.com в google sheets

столкнулся со следующей проблемой: Пытаюсь получить с сайта https://wwwinvesting

150
Конкатенация в объектах js

Конкатенация в объектах js

Дан следующий код

158
Как работают регулярные выражения в js?

Как работают регулярные выражения в js?

Есть строка 'IM'">Сегодня 12:36</span> Хочу получить из него дату

174
Простейшая валидация e-mail на JS

Простейшая валидация e-mail на JS

При передачи в функции id с числовым именем все работает на "ура", НО когда id состоит из букв, консоль сразу даёт ошибку "UnCaught TypeError"

154