使用带有 C# 的 ASP.NET MVC 3 我有一个网页来显示一个地图,我想在该地图上添加一条由多个纬度和经度坐标组成的折线。使用Leaflet JavaScript 库,您可以添加GeoJson层。我想从 C# 中的数据库中获取经度和纬度坐标,并将坐标列表传递给 JavaScript 以创建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
}
};
如何创建类似于上面显示的 GeoJson 并将位置数据从 C# 或 JavaScript 添加到“<em>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);