71 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
			
		
		
	
	
			71 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C#
		
	
	
	
using LY.App.Common;
 | 
						|
using NetTopologySuite.Algorithm;
 | 
						|
using NetTopologySuite.Geometries;
 | 
						|
using Newtonsoft.Json;
 | 
						|
using Pipelines.Sockets.Unofficial.Arenas;
 | 
						|
using SqlSugar;
 | 
						|
 | 
						|
namespace LY.App.Model
 | 
						|
{
 | 
						|
    /// <summary>
 | 
						|
    /// 多边形实体
 | 
						|
    /// </summary>
 | 
						|
    public class MultPolygonEntity : BaseEntity
 | 
						|
    {
 | 
						|
        /// <summary>
 | 
						|
        /// 空间面数据
 | 
						|
        /// </summary>
 | 
						|
        [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; }
 | 
						|
 | 
						|
        /// <summary>
 | 
						|
        /// 空间位置点Json数据
 | 
						|
        /// </summary>
 | 
						|
        public void SetRegionJson()
 | 
						|
        {
 | 
						|
            RegionJson = "";
 | 
						|
            if (!string.IsNullOrWhiteSpace(Region))
 | 
						|
            {
 | 
						|
                var geo = GeoJsonHelper.FromWKT(Region);
 | 
						|
                if (geo != null)
 | 
						|
                {
 | 
						|
                    RegionJson = GeoJsonHelper.GetGeoJson(geo);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 设置空间位置点
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="region"></param>
 | 
						|
        public void SetRegion(MultiPolygon region)
 | 
						|
        {
 | 
						|
            if (region != null)
 | 
						|
            {
 | 
						|
                Region = region.AsText();
 | 
						|
            }
 | 
						|
        }
 | 
						|
        /// <summary>
 | 
						|
        /// 设置空间位置点
 | 
						|
        /// </summary>
 | 
						|
        /// <param name="region"></param>
 | 
						|
        public void SetRegionJson(string region)
 | 
						|
        {
 | 
						|
            RegionJson = "";
 | 
						|
            if (!string.IsNullOrWhiteSpace(region))
 | 
						|
            {
 | 
						|
                var geo = GeoJsonHelper.FromWKT(region);
 | 
						|
                if (geo != null)
 | 
						|
                {
 | 
						|
                    RegionJson = GeoJsonHelper.GetGeoJson(geo);
 | 
						|
                }
 | 
						|
            }
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |