ポリゴン座標が間違った順序であるかどうかを識別するチェックを追加しました。条件が確認された場合は修正したいのですが、Reverse() 関数が非推奨になっていることがわかりました。
List<Coordinate> polygonCoords = new List<Coordinate>();
foreach(LatLngDto latlng in latlngs.LatLngs)
{
Coordinate vertex = new Coordinate(latlng.Lng, latlng.Lat);
polygonCoords.Add(vertex);
}
polygonCoords.Add(new Coordinate(latlngs.LatLngs[0].Lng, latlngs.LatLngs[0].Lat));
var geometryFactory = NtsGeometryServices.Instance.CreateGeometryFactory(srid: 4326);
var customShape = geometryFactory.CreatePolygon(polygonCoords.ToArray());
if (!customShape.Shell.IsCCW)
{
customShape = (Polygon)customShape.Reverse();
}
List<int> gridCellCodes = (from gc in grid5KmCellRepo.GetAll()
where gc.Grid5KmCellCoords.Intersects(customShape)
select gc.Grid5KmCellId).ToList();
何を使えばいいですか?
NetTopologySuiteに関する関連ドキュメントは見つかりませんでした。メソッドはまだドキュメントにあります 。