Клуб API Карт

проверка результата геокодирования

Пост в архиве.
mplagiat
21 января 2010, 12:30

Привет всем! Мой проект выполняет множественное геокодирование и поэтому мне нужно проверять валидность адреса. Пробовал что бы функция описанная в примере возвращала результат но у меня ни как не получилось. Как же все таки изменить эту функцию что бы получать результат?

function showAddress (value) {
  // Удаление предыдущего результата поиска
  map.removeOverlay(geoResult);
 
  // Запуск процесса геокодирования
  var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});
 
  // Создание обработчика для успешного завершения геокодирования
  YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
  // Если объект был найден, то добавляем его на карту
  // и центрируем карту по области обзора найденного объекта
  if (this.length()) {
  geoResult = this.get(0);
  map.addOverlay(geoResult);
  map.setBounds(geoResult.getBounds());
  }else {
  alert("Ничего не найдено")
  }
  });
 
  // Процесс геокодирования завершен неудачно
  YMaps.Events.observe(geocoder, geocoder.Events.Fault, function (geocoder, error) {
  alert("Произошла ошибка: " + error);
  })
  }

 

1 комментарий
Геокодирование - это асинхронный процесс, поэтому результаты будут доступны только через какое-то время.

Лучше все же один раз провести геокодирование и закэшировать полученные координаты, потому что при множественном геокодировании пользователь будет дольше ждать загрузки объектов + можно достаточно легко превысить лимит 25000 запросов в сутки.

Множественное геокодирование на JavaScript сделать несложно. Вот пример: http://rodlex.narod2.ru/multiplygeocoding.html