【发布时间】:2014-11-05 17:36:59
【问题描述】:
试图返回一些非常简单的 GeoJSON 数据。我找到了 NetTopologySuite,并设置了一个简单的 FeaturesCollection,并尝试将其序列化为 GeoJson 字符串,结果出现以下错误:
“检测到属性‘CoordinateValue’的自引用循环 键入“GeoAPI.Geometries.Coordinate”。小路 'Features[0].Geometry.Coordinates[0]'。”
查看类标题,Point 使用 Coordinate,它确实具有 Coordinate 属性,因此我可以看到为什么会有循环引用。问题是,大多数(如果不是全部)几何似乎都使用点,所以这将使得不可能序列化任何东西......除非我错过了一些东西。
这是一个错误还是我遗漏了什么?
仅用一个点进行测试并得到相同的错误,所以这里是代码:
using NTS = NetTopologySuite;
var ret = new NTS.Geometries.Point(42.9074, -78.7911);
var jsonSerializer = NTS.IO.GeoJsonSerializer.Create();
var sw = new System.IO.StringWriter();
jsonSerializer.Serialize(sw, ret);
var json = sw.ToString();
【问题讨论】:
-
这是什么
Create()方法?我没有看到它here。 -
如果你为
GeoJsonSerializer使用一个修改过的构造函数,你需要确保一个CoordinateConverter被传递给它,如here所示。 -
Create() 是父类的一部分(显然。)切换到默认构造函数完美。随意将其作为实际答案,我会标记它。 :)
标签: c# .net nettopologysuite