在C#中使用ASP.NET MVC 3我有一个网页来显示我想要添加由多个纬度和经度坐标组成的多段线的地图。使用小册子 JavaScript库可以添加GeoJson图层。我想从C#中的数据库获取经度和纬度坐标,并将坐标列表传递给JavaScript以创建GeoJson或GeoJson。从ASP.NET MVC控制器获取GeoJson数据的Ajax调用
这是我希望创建以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部然后用它在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);
您应该尝试使用JSON.NET序列化器而不是JavaScriptSerializer。另外,如果你像上面那样在控制器内部序列化,你应该返回一个ContentResult,因为JsonResult也会执行序列化。在下面的答案中添加了一些代码,以解释如何。 – 2012-08-03 06:50:55