使用C#和ASP.NET MVC 3,我有一个网页来展示一个地图,并想要添加一个由多个纬度和经度坐标组成的折线。通过 Leaflet JavaScript库,可以添加GeoJson图层。我希望能从C#数据库中获取经纬度坐标,并将坐标列表传递给JavaScript以创建GeoJson或作为GeoJson。
这是我想要创建的GeoJson的例子:
这是我想要创建的GeoJson的例子:
var polyline = {
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[-105.00341892242432, 39.75383843460583],
[-105.0008225440979, 39.751891803969535] …
]
},
"properties": {
"popupContent": "This is a polyline of many coordinates.",
"underConstruction": false
}
};
如何在C#或JavaScript中创建类似上述GeoJson并将位置数据添加到“coordinates”部分,然后在JavaScript中使用它来添加图层:
var myLayer = L.geoJson().addTo(map);
myLayer.addData(polyline);
我开始使用GeoJSON.net,并编写了以下代码:
foreach (Position point in Positions)
{
coordinates.Add(point);
}
GeoJSON.Net.Geometry.LineString line = new GeoJSON.Net.Geometry.LineString(coordinates);
JavaScriptSerializer serializer = new JavaScriptSerializer();
var data = serializer.Serialize(lineString);
但我不知道如何将这个GeoJSON LinseString对象从C#传递到JavaScript。我试过使用Json来传递它,但失败了:
return Json(data, JsonRequestBehavior.AllowGet);