Карты Google - Geocode 100 адресов и калибровать порт просмотра? - PullRequest
0 голосов
/ 28 июля 2011

Я уверен, что имею дело с довольно распространенной проблемой, которая была решена много раз прежде.

Мое веб-приложение запрашивает около 100 разделенных строками адресов зданий из другого сервиса. Теперь я должен представить все это как gmarkers на карте Google (с API версии 3). Я также должен откалибровать порт просмотра для отображения всех маркеров, то есть определить центр карты и соответствующее значение масштабирования.

Я нашел некоторый код из API Карт Google и настроил его для отображения одной точки:

  function codeAddress() {
    var address = '1 Yonge Street, Toronto, ON'; 
    geocoder.geocode( { 'address': address}, geocodeCallBack);
  }

  function geocodeCallBack(results, status)
  {
      if (status == google.maps.GeocoderStatus.OK) {
        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);
      }

  }

Однако я подозреваю, что выполнение 100 асинхронных вызовов геокодирования может быть медленным. У кого-нибудь есть предложения по лучшему способу достижения того, что мне нужно?

1 Ответ

1 голос
/ 14 августа 2011

Выполнение 100 геокодов при каждой загрузке вашей страницы займет десятки секунд, поэтому я предлагаю заранее выполнить геокодирование.

Если адреса всегда одинаковы или редко меняются, вы можете заранее геокодировать их с помощью службы геокодирования (http://code.google.com/apis/maps/documentation/javascript/services.html)) и временно сохранять полученные значения широты / долготы на вашем сервере , если они только отображается на карте API Карт .

Временно означает, что вы должны периодически обновлять эти значения широты / долготы (например, раз в 30 дней).

(подробности см. В 10.1.3b: http://code.google.com/apis/maps/terms.html)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...