ASP.NET MVC 3をC#で使用すると、いくつかの緯度と経度の座標で構成されるポリラインを追加するマップを表示するWebページがあります。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);