0

私はASP.NETプロジェクトに取り組んでおり、その中でGoogleマップを使用しています。ページ読み込み時に地図を読み込みます。次に、ボタンをクリックして、いくつかのマーカーを追加します。私は次のコードを使用しています。

function LoadSecurity(locationList, message) {
    if (document.getElementById("map_canvas") != null && 
        document.getElementById("map_canvas") != "null") {

        map = new google.maps.Map(document.getElementById("map_canvas"), 
            myOptions);

        for (var i = 0; i < locationList.length; i++) {
            if ((i == 0) || (i == locationList.length - 1)) {
                var args = locationList[i].split(",");
                var location = new google.maps.LatLng(args[0], args[1])
                var marker = new google.maps.Marker({
                    position: location,
                    map: map
                });
                marker.setTitle(message[i]);
            }
        }
    }
}

そして、次のコードでボタンの関数を呼び出します。

<asp:Button ID="Button1" runat="server" 
    OnClientClick="javascript: LoadSecurity('57.700034,11.930706','test')"
    Text="Button" />

しかし、機能していません。何か助けてください?

4

1 に答える 1

3

ここで場所'i'の要素を要求しますが、locationListはその時点での文字列にすぎませんか?

locationList[i].split(","); 

に変更してみてください

locationList.split(","); 

ただし、コードには他にも奇妙なことがいくつかあります。forループは0からlocationListの長さになりますが、その時点でlocationListは文字列であり、配列ではありません。したがって、forループは0から19になります...

渡した文字列から2つの座標を取得しようとしている場合は、次のjsfiddleを参照してください。http://jsfiddle.net/f3Lmh/

その文字列で複数の座標を渡そうとしている場合は、渡す方法を少し変更する必要があるため、どの座標が誰に属しているかを簡単に確認できます。私は別の小さなjsfiddleを準備しました:http://jsfiddle.net/f3Lmh/4/

于 2012-05-16T07:13:49.670 に答える