首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在C#中使用GeoJSON.Net为谷歌地图加分

在C#中使用GeoJSON.Net为谷歌地图加分
EN

Stack Overflow用户
提问于 2016-07-28 22:49:07
回答 1查看 3.8K关注 0票数 3

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

代码语言:javascript
复制
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; }
}

我通常会使用这样的水井集合:

代码语言:javascript
复制
var myWaterWells = new List<WaterWell>();
// blah, blah

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

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

EN

回答 1

Stack Overflow用户

发布于 2016-12-26 20:19:45

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

我提到的两行代码与json文件有关。

代码语言:javascript
复制
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属性创建点对象

这是我为您编写的示例代码:

代码语言:javascript
复制
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));
    }
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38639806

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档