0

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 として保存するクリーンなソリューションはありますか?

4

1 に答える 1