Layer.csという名前のモデルがあり、次のようなGeometryという名前のプロパティがあります。
public NetTopologySuite.Geometries.Geometry Geometry { get; set; }
サンプルの GeoJson ファイル (ここで見つけることができます) を機能コレクション ( NetTopologySuite.Features.FeatureCollection )に変換したいと考えています。
// create NetTopology JSON reader
var reader = new NetTopologySuite.IO.GeoJsonReader();
// pass geoJson's FeatureCollection to read all the features
var featureCollection = reader.Read<NetTopologySuite.Features.FeatureCollection>(josnData);
次に、次を使用して Layer.Geomerty に保存します。
layer.Geometry =
NetTopologySuite.Geometries.Geometry.DefaultFactory.CreateGeometryCollection(featureCollection.Select(c => c.Geometry).ToArray());
また
layer.Geometry =
NetTopologySuite.Geometries.Geometry.DefaultFactory.BuildGeometry(featureCollection.Select(c => c.Geometry));
しかし、(両方の状況で)変更の保存を呼び出した後、次のエラーが発生しました:
着信表形式データ ストリーム (TDS) リモート プロシージャ コール (RPC) プロトコル ストリームが正しくありません。パラメーター 3 ("@p2"): 指定された値は、データ型 geography の有効なインスタンスではありません。ソース データに無効な値がないか確認してください。無効な値の例は、位取りが精度より大きい数値型のデータです。
EF Core 5 を使用して GeoJson ファイルを NetTopologySuite.Geometries.Geometry として保存するクリーンなソリューションはありますか?