using LY.App.Common; using NetTopologySuite.Algorithm; using NetTopologySuite.Geometries; using Newtonsoft.Json; using Pipelines.Sockets.Unofficial.Arenas; using SqlSugar; namespace LY.App.Model { /// /// 多边形实体 /// public class MultPolygonEntity : BaseEntity { /// /// 空间面数据 /// [SugarColumn(QuerySql = "st_astext(region)", ColumnDataType = "multipolygon", ColumnName = "region", UpdateSql = "ST_GeomFromText(@region)", InsertSql = "ST_GeomFromText(@region)", IsNullable = true, ColumnDescription = "空间面数据")] [JsonIgnore] public string? Region { get; set; } //MultiPolygon Geometry [SugarColumn(IsIgnore = true)] public string RegionJson { get; set; } /// /// 空间位置点Json数据 /// public void SetRegionJson() { RegionJson = ""; if (!string.IsNullOrWhiteSpace(Region)) { var geo = GeoJsonHelper.FromWKT(Region); if (geo != null) { RegionJson = GeoJsonHelper.GetGeoJson(geo); } } } /// /// 设置空间位置点 /// /// public void SetRegion(MultiPolygon region) { if (region != null) { Region = region.AsText(); } } /// /// 设置空间位置点 /// /// public void SetRegionJson(string region) { RegionJson = ""; if (!string.IsNullOrWhiteSpace(region)) { var geo = GeoJsonHelper.FromWKT(region); if (geo != null) { RegionJson = GeoJsonHelper.GetGeoJson(geo); } } } } }