我试图在地图上显示来自sql server的gps点。 我使用一些代码将点存储在隐藏值中。
string cs
=ConfigurationManager.ConnectionStrings["myConnectionString"].ConnectionString;
using(SqlConnection conn = new SqlConnection(cs))
{
conn.Open();
SqlCommand cmd = new SqlCommand("select directionX,directionY from DailyReport where date='1397/10/20'", conn);
SqlDataReader reader = cmd.ExecuteReader();
List<string> list = new List<string>();
while (reader.Read())
{
list.Add(reader["directionX"] +","+ reader["directionY"]);
HiddenField1.Value= string.Join(",", list.ToArray());
}
}
之后,我将hiddenfield值存储在javascript变量中:
var arr1 = '<%=this.HiddenField1.Value%>';
但是使用javascript代码映射不会显示折线。
<script src="http://cdn.leafletjs.com/leaflet/v0.7.7/leaflet.js"></script>
<script type="text/javascript" >
var x = document.getElementById('<%= txtX.ClientID %>').value;
var y = document.getElementById('<%= txtY.ClientID %>').value;
function showRout() {
//var mymap = L.map('mapid').setView([29.6208701, 52.5779901], 16);
//var x = 29.6208701;
var mymap = L.map('mapid').setView([x, y], 16);
L.tileLayer('http://{s}.tile.osm.org/{z}/{x}/{y}.png', {
attribution: '© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
}).addTo(mymap);
var arr = [
[29.6208701, 52.5779901],
[29.6195714, 52.5765552],
[29.6182244, 52.5752645]
];
var arr1 = '<%=this.HiddenField1.Value%>';
alert("value from hiddenfield is : "+arr1 +"and array written by hand is: " +arr);
var polyline = L.polyline(arr1).addTo(mymap);
}
</script>
写这样的javascript数组没关系:
var arr = [
[29.6208701, 52.5779901],
[29.6195714, 52.5765552],
[29.6182244, 52.5752645]
];
我已经使用'alert'函数检查了来自两个变量'arr'和'arr1'的值,它们是相同的。 我不知道如何使用hiddenfield值在传单地图上显示折线。
答案 0 :(得分:1)
所以将隐藏字段分配给Javascript数组的最终答案是
var arr1 = [<%=this.HiddenField1.Value%>];
您也许会考虑重写C#代码以输出JSON,而JSON更容易进入Java语言世界。