1

同様の投稿を読んだことがありますが、それでも自分で解決策を見つけることができませんでした。基本的に、私は 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);

            }
          }
        );
      }
    }

1 つの場所をジオコーディングするとすべてが機能するように見えますが、それらすべてを処理するためにループに入れることはできません。

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

1 に答える 1

0

showAddress 関数では、markers[i] を参照します。

ただし、i を渡さないでください...その変数は関数のスコープ内にありません。したがって、反復して追加するのではなく、変数を配列内の存在しない場所に何度も追加しています。

i を渡すか、showAddress を関数にカプセル化しない必要があります。

関数 showAddresses を作成し、関数内にループを入れてみてはどうでしょうか。

于 2009-11-11T22:34:25.120 に答える