Der Versuch, einige ziemlich einfache GeoJSON-Daten zurückzugeben. Ich fand NetTopologySuite, und eine einfache FeaturesCollection eingerichtet und versucht, es nur zu einem GeoJSON Zeichenfolge serialisiert aus den folgenden Fehler zu erhalten:Probleme beim Serialisieren von NetTopologySuite FeaturesCollection zu GeoJSON
"Self referencing loop detected for property 'CoordinateValue' with type 'GeoAPI.Geometries.Coordinate'. Path 'Features[0].Geometry.Coordinates[0]'."
Blick durch die Klasse-Header verwendet Punkt, Koordinaten, die eine Koordinaten Eigenschaft hat also kann ich sehen, warum es einen Zirkelbezug geben würde. Die Sache ist, dass die meisten (wenn nicht alle) Geometrien Point zu verwenden scheinen, so dass es unmöglich wäre, jemals etwas zu serialisieren ... es sei denn, ich verpasse etwas.
Also ist das ein Fehler oder fehlt mir etwas?
mit nur einem Punkt getestet und erhielt die gleiche Störung, also hier ist der Code dafür:
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();
Was ist das 'Create()' Methode? Ich sehe es [hier] nicht (https://github.com/NetTopologySuite/NetTopologySuite/blob/d6b9737798d2ed4d85864f04b9689bc4ff193344/NetTopologySuite.IO/NetTopologySuite.IO.GeoJSON/GeoJsonSerializer.cs). – dbc
Wenn Sie einen modifizierten Konstruktor für 'GeoJsonSerializer' verwenden, müssen Sie einen [' CoordinateConverter'] (https://github.com/NetTopologySuite/NetTopologySuite/blob/d6b9737798d2ed4d85864f04b9689bc4ff193344/NetTopologySuite.IO/NetTopologySuite.IO.GeoJSON /Converters/CoordinateConverters.cs) wird an ihn übergeben, wie es [hier] (https://github.com/NetTopologySuite/NetTopologySuite/blob/d6b9737798d2ed4d85864f04b9689bc4ff193344/NetTopologySuite.IO/NetTopologySuite.IO.GeoJSON/GeoJsonSerializer.cs) gezeigt wird. – dbc
Create() ist Teil der Elternklasse (anscheinend.) Der Wechsel zum Standardkonstruktor funktioniert einwandfrei. Fühlen Sie sich frei, das eine tatsächliche Antwort zu machen, und ich werde es markieren. :) – CodeRedick