0

私が直面している小さな問題があります。

パート 1: 私がやろうとしていることについての少しの洞察。

Window.onload [in javascript] は、googlemaps を表示する関数を呼び出します。

ボタンをクリックすると、MySQL データベースから緯度と経度が読み取られます。このコードは C# コード ビハインドで記述されています。

そして、C# から、これらの緯度と経度をパラメータとして JavaScript 関数を呼び出します。

これで、javascript 関数は、受信したパラメーターにマーカーを配置する必要があります。代わりに、googlemap をリロードし、マーカーが表示されません!


パート 2: MySQL テーブルにデータがある限り、while ループから JavaScript を何度も呼び出して、最新の緯度と経度を送信したい。

//While ループは行を読み取り、javascript 関数を呼び出します!しかし、何らかの理由で Javascript 関数は 1 回しか呼び出されません。

while(read.Read())
                    {

                        id= read["ID"].ToString();
                        lat = read["latitude"].ToString();

                       longitude = read["longitude"].ToString();
                        freq=read["frequency"].ToString();


                       array_ID.Add(Convert.ToInt32(id));
                       array_lat.Add(Convert.ToDouble(lat));
                       array_lon.Add(Convert.ToDouble(longitude));
                       array_freq.Add(Convert.ToInt32(freq));

 string[] myarr = { id, lat, longitude, freq };
javascriptfunction_markers(myarr); 


}



 public void javascriptfunction_markers(string[] myarray_data)
        {
            StringBuilder javascriptFunction = new StringBuilder();
         javascriptFunction.Append("qasim(");

            javascriptFunction.Append("'" + myarray_data[0].ToString() + "',");
            javascriptFunction.Append("'" + myarray_data[1].ToString() + "',");
            javascriptFunction.Append("'" + myarray_data[2].ToString()+ "',");
            javascriptFunction.Append("'" + myarray_data[3].ToString()+ "');");
            Page.ClientScript.RegisterStartupScript(Page.GetType(), "OnLoadCall", javascriptFunction.ToString(), true);
}


the string built here looks like on a sample data :

qasim('1','33.2358','72.4560',5);


the javascript function 'qasim' in .aspx is :



function qasim(id,lat,lon,freq)
        {
            var ltlngx = [];
            var x = id.toString();
            var x1 = lat.toString();
            var x2 = lon.toString();
            var x3 = freq.toString();
            alert("Function ID : " + x +" Lat: "+ x1 + " Lon: " + x2 +"Freq: "+ x3);
            count = count + 1;

            alert("Called times " + count.toString());

                var xx = parseFloat(lat);
                var yy = parseFloat(lon);

                ltlngx.push(new google.maps.LatLng(xx, yy));

                alert("Lat,lng is " + ltlngx[0]);

                 map.setCenter(ltlngx[0]);

                 marker = new google.maps.Marker({
                     map: map,
                     animation: google.maps.Animation.DROP,
                     position: ltlngx[0],
                     icon: 'images/map-pin.png'
                 });
                 var i=0;

                (function (i, marker) {

                    var xx = marker.position.toString();

                    google.maps.event.addListener(marker, 'click', function () {

                        if (!infowindow) {
                            infowindow = new google.maps.InfoWindow();
                        }

                         infowindow.setContent('Location info:<br/><br/>Lat & Lng:' + xx + "<br/>" + "  ID :  "+x+"  Freq:  "+x3);

                        infowindow.open(map, marker);

                    });

                })(i, marker);  
           }
4

0 に答える 0