0

我面临一个小问题。

第 1 部分:对我正在尝试做的事情有一点了解。

Window.onload [在 javascript 中] 调用一个函数,该函数只显示 googlemaps。

然后单击一个按钮,从 MySQL 数据库中读取纬度和经度,这段代码是用 C# 代码编写的。

我从 C# 调用一个带有纬度和经度作为参数的 javascript 函数。

现在javascript函数应该在接收到的参数上放置一个标记,而不是重新加载googlemap,我没有看到任何标记!


第 2 部分:只要 MySQL 表中有数据,我想从 while 循环中一次又一次地调用 javascript 以发送最新的纬度和经度。

//While循环读取一行,并调用javascript函数!但由于某种原因,Javascript函数只被调用一次。

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