2016-07-28 24 views
3

我使用的是Visual Studio 2013.作爲一個簡單示例,我想爲50個水井(點)的集合生成GeoJSON。現有數據的結構是這樣的:使用C#中的GeoJSON.Net爲Google地圖製作積分

class WaterWell 
{ 
    public int WaterWellId { get; set; } 
    public int Diameter { get; set; } 
    public int Depth { get; set; } 
    public string Lat { get; set; } 
    public string Lng { get; set; } 
} 

我可能通常水井這樣的收集工作:

var myWaterWells = new List<WaterWell>(); 
// blah, blah 

因爲我將顯示在谷歌地圖的GeoJSON的,它必須符合http://geojson.org標準。

我已經從Nuget安裝GeoJSON.Net包到Visual Studio。然而,令人驚訝的是,經過大量的搜索,我找不到任何GeoJSON.Net C#示例。 所以,我的問題是這樣的:如何在C#中使用GeoJSON.Net將50個水井的集合序列化爲GeoJSON?

回答

2

我有同樣的問題,這個功能來自「GeoJSON.Net.Tests」項目。 您可以調試並查看actualJson。

我提到的兩行與json文件有關。

public void Can_Serialize_Point_Feature() 
{ 
    var geometry = new Point(new GeographicPosition(1, 2)); 
    //var expectedJson = GetExpectedJson(); 

    var actualJson = JsonConvert.SerializeObject(new Net.Feature.Feature(geometry)); 

    //JsonAssert.AreEqual(expectedJson, actualJson); 
} 

你需要從你的緯度和LNG性質

創建點對象,這是我的示例代碼,我給你們寫:

class Program 
{ 
    static void Main(string[] args) 
    { 
     var points = new List<Point> 
     { 
      new Point(new GeographicPosition(52.370725881211314, 4.889259338378906)), 
      new Point(new GeographicPosition(52.3711451105601, 4.895267486572266)), 
      new Point(new GeographicPosition(52.36931095278263, 4.892091751098633)), 
      new Point(new GeographicPosition(52.370725881211314, 4.889259338378906)) 
     }; 

     var multiPoint = new MultiPoint(points); 

     var actualJson = JsonConvert.SerializeObject(new Feature(multiPoint, null)); 
    } 
} 
+0

當我這樣做我不斷收到一個JSON轉換錯誤: ''Newtonsoft.Json.JsonWriterException' – Zapnologica