【问题标题】:Is it possible to serialize Nettopologysuite geometry to GeoJSON through GeoJSON4STJ?是否可以通过 GeoJSON4STJ 将 Nettopologysuite 几何序列化为 GeoJSON?
【发布时间】:2023-01-25 21:08:04
【问题描述】:

您好我一直在尝试使用 GeoJSON4STJ for Nettopologysuite 将多边形序列化为变量。到目前为止反序列化工作正常,但我无法序列化它。有什么办法吗?

我已经按要求在启动文件中添加了如下代码

public void ConfigureServices(IServiceCollection services) {
  services.AddControllers()
  .AddJsonOptions(options => {
    options.JsonSerializerOptions.Converters.Add(new NetTopologySuite.IO.Converters.GeoJsonConverterFactory());
  });
}

我正在尝试使用以下 lin

geoStr = JsonSerializer.Serialize(geometry);

【问题讨论】:

  • 我试图让反序列化自己工作,但无济于事。您是否尝试过反序列化,如GitHub readme 所示?
  • @JoshuaAbbott 老实说,为了反序列化,我只是将原始 GeoJson 数据分配给几何类型(使用 NetTopologySuite.Geometries)。自述文件中需要注意的重要一点是,有两个包 1) GeoJSON4STJ 和 2) GeoJSON。我使用的是前者,它需要 System.Text.Json,所以如果您使用 NewtonSoft,您可能需要像我一样进行切换。
  • @JorenV 我认为问题是相反的:How to convert from NetTopologySuite Geometry to GeoJSON

标签: c# asp.net geojson system.text.json nettopologysuite


【解决方案1】:

我知道这个问题已经过时了,这个答案与您的要求并不完全匹配,但我认为这可能会使您对 GeoJSON4STJ 的具体请求变得不必要。

您可以使用“NetTopologySuite.IO”将 NetTopologySuite Geometry 直接转换为 GeoJSON,如下所示:

using NetTopologySuite.IO;

var geometryData = <Your NetTopologySuite Geometry data>;
GeoJsonWriter _geoJsonWriter = new GeoJsonWriter();
var str = _geoJsonWriter.Write(geometryData);

这将非常简单地避开您对GeoJSON4STJ 的需求来完成这项工作。

希望这对某人有帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-16
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 2010-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多