【问题标题】:Make points for Google Maps using GeoJSON.Net in C#在 C# 中使用 GeoJSON.Net 为 Google 地图制作积分
【发布时间】:2016-07-28 14:49:07
【问题描述】:

我正在使用 Visual Studio 2013。举个简单的例子,我想为 50 个水井(点)的集合生成 GeoJSON。现有数据的结构如下所示:

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

因为我将在 Google 地图中显示 GeoJSON,所以它必须符合 http://geojson.org 标准。

我已将 GeoJSON.Net 包从 Nuget 安装到 Visual Studio。然而,令人惊讶的是,经过多次谷歌搜索,我在任何地方都找不到 GeoJSON.Net C# 示例。 所以,我的问题是:如何在 C# 中使用 GeoJSON.Net 将我收集的 50 口水井序列化为 GeoJSON?

【问题讨论】:

    标签: c# google-maps-api-3 geojson


    【解决方案1】:

    我有同样的问题,这个函数来自“GeoJSON.Net.Tests”项目。 您可以调试并查看实际的Json。

    我提到的两行与 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);
     }
    

    你需要从你的 Lat 和 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));
        }
    }
    

    【讨论】:

    • 当我这样做时,我不断收到一个 json 转换错误:'Newtonsoft.Json.JsonWriterException
    猜你喜欢
    • 1970-01-01
    • 2011-04-25
    • 1970-01-01
    • 1970-01-01
    • 2011-06-19
    • 1970-01-01
    • 1970-01-01
    • 2016-05-20
    • 1970-01-01
    相关资源
    最近更新 更多