在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