Показать сообщение отдельно
  #1 (permalink)  
Старый 26.05.2016, 16:12
Новичок на форуме
Отправить личное сообщение для DDanser Посмотреть профиль Найти все сообщения от DDanser
 
Регистрация: 26.05.2016
Сообщений: 7

GoogleAPI-v3 и OVER_QUERY_LIMIT
Добрый день. Подскажите пожалуйста. Есть такой JS:

var geocoder;
var map;
var query = new Array('Москва, Измайловский Вал, 20с1', 'Тула, площадь Крестовоздвижненская', 'Смоленск, ул. Глинки, 7', 'Калуга, ул. Кирова, 21А', 'Санкт-Петербург, Невский проспект, 38/4', 'Псков, Октябрьский проспект, 29/25', 'Калининград, Московский проспект, 24', 'Архангельск, Ломоносова проспект, 137/19', 'Ярославль, Ленина проспект, 25', 'Вологда, ул. Предтеченская, 33', 'Иваново, ул. Лежневская, 157', '');


var idArr = new Array('mp0', 'mp1', 'mp2', 'mp3', 'mp4', 'mp5', 'mp6', 'mp7', 'mp8', 'mp9', 'mp10');

function initialize() {
  geocoder = new google.maps.Geocoder();
  var mapOptions = {
    zoom: 15
  }
  
  
  
  map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
  codeAddress();
}

function codeAddress() {
  for (var i = 0; i < query.length; i++) {
    var address = query[i];
    geocoder.geocode({
      'address': address
    }, function(k) {
      return function(results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
          var a = document.getElementById(idArr[k]);
          a.onclick = function() {
            map.setZoom(17);
            map.setCenter(results[0].geometry.location);
          }
          map.setCenter(results[0].geometry.location);
          var marker = new google.maps.Marker({
            map: map,
            position: results[0].geometry.location
          });
        } else {
          alert('Geocode was not successful for the following reason: ' + status);
        }
      }
    }(i));
  }
}

google.maps.event.addDomListener(window, 'load', initialize);


Данный скрипт переводит камеру, на изначально созданные маркеры. Меня это вполне бы устроило, но почему то при попытке добавить новый объект, возникает ошибка "OVER_QUERY_LIMIT". Побродив по американским форумам, понял что это изза того что одновременно очень много запросов идет, и гугл ругается. Можно ли как то реализовать такую возможность, чтобы при каждом новом клике создавался новый маркер, а старый стирался?

Так же прикладываю ссылку на CodePen.
Ответить с цитированием