Геокодирование названий городов по их координатам в цикле - PullRequest
1 голос
/ 12 ноября 2009

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

function showAddress(markers) {

    var address = "<?php echo $Fcity[$j], " , ", $Fcountry[$j]?>";
     if (geocoder) {
        geocoder.getLatLng(address, function(point) {
            if (!point) {
              alert(address + " not found");
            } else {

            var marker = new GMarker(point);
            map.addOverlay(marker);
            markers[i] = marker;        
              marker.openInfoWindowHtml(address);

            }
          }
        );
      }
    }

Кажется, все работает, если я геокодирую одно местоположение, но я не могу поместить его в цикл для обработки всех из них.

for (var i = 0; i < markers.length; i++) {
            showAddress(markers[i]);
        }

1 Ответ

0 голосов
/ 12 ноября 2009

В вашей функции showAddress вы ссылаетесь на маркеры [i].

Однако вы не передаете i ... эта переменная не входит в область действия функции. Таким образом, вы не повторяете и не добавляете, вы снова и снова добавляете переменные в несуществующее место в массиве.

Вам нужно либо передать в i, либо не включать showAddress в функцию.

Как насчет создания функции showAddresses и помещения цикла в функцию.

...