-3

私は問題があります。緯度と経度の値を含む JavaScript 文字列を送信しています。次に、JavaScript でsplit()メソッドを使用して、この値の配列を取得します。すべてのマーカーを描画するにはどうすればよいですか? この機能は正しく機能しません - 地図上にマーカーが作成されません。なにが問題ですか?

                var lngstring = <%=lngstring %>
                var latstring = <%=latstring %>
                alert(latstring);
                alert(lngstring);
                var arraylat = latstring.split("#");
                var arraylng = lngstring.split("#");
                alert(arraylat.length) // 200
                for (var i = 0; i < arraylat.length; i++) {
                        var marker = new google.maps.Marker({
                        position: new google.maps.LatLng(arraylat[i],arraylng[i]),
                        map: map
                        });
                        //alert(arraylat[i],arraylng[i]);
                 }
                 alert("ready!");
                 alert(arraylat[2]); // 37.789879
                 alert(arraylng[2]); // -122.39044200000001
4

3 に答える 3

3

<%=lngstring %>引用して、次<%=latstring %>のようにマークする必要がありますstring

var lngstring = "<%=lngstring %>";   
var latstring = "<%=latstring %>";

そうしないと、次のようになります。

var lngstring = 18.69872650000002#14.971600200000012#15.58599490000006#16.077066699999932;

これは無効な JavaScript であり、ブラウザはそれを解析できません。

于 2012-07-08T14:23:50.333 に答える
0

緯度と経度の値は数値である必要があります。LatLng コンストラクターに渡す文字列に対して parseFloat() を呼び出します。

変化する:

position: new google.maps.LatLng(arraylat[i],arraylng[i])

に:

position: new google.maps.LatLng(parseFloat(arraylat[i]),parseFloat(arraylng[i]))
于 2012-07-08T14:14:20.340 に答える
0

コードではマップ オブジェクトを設定しません。以下のように設定できます。マーカーを追加する前にこれを使用します。

var mapOptions = {
  zoom: 12
};
var map =  new google.maps.Map(document.getElementById("map_canvas"), mapOptions);

HTMLで

<div id="map_canvas"></div>
于 2012-07-08T07:41:06.207 に答える