ASP.NET MVC 3 with C#を使用するいくつかの緯度と経度座標からなるポリラインを追加するマップを表示するWebページがあります。 リーフレット JavaScriptライブラリを使用すると、GeoJsonのレイヤーを追加できます。私はC#でデータベースから経度と緯度の座標を取得し、座標のリストをJavaScriptに渡して、GeoJsonまたはGeoJsonを作成したいと考えています。ここASP.NET MVC Controllerから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);
JavaScriptSerializerの代わりにJSON.NETシリアライザを使用するようにしてください。また、上記のようなコントローラ内部でシリアル化を行う場合は、JsonResultもシリアル化を実行するため、ContentResultを返す必要があります。私の答えにいくつかのコードを追加しました。 –