| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180 | using System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations.Schema;using System.ComponentModel.DataAnnotations;using System.Linq;using System.Text;using System.Threading.Tasks;namespace DW5S.Entity{    /// <summary>    /// 指示某个属性需要导出    /// </summary>    [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]    public class ExportCellAttribute : Attribute    {        /// <summary>        /// 指示某个属性需要导出        /// </summary>        public ExportCellAttribute()        {        }        /// <summary>        /// 指示某个属性需要导出        /// </summary>        /// <param name="format">浮点数(默认f4)、时间(默认yyyy-MM-dd HH:mm:ss)等导出时的格式化字符串</param>        public ExportCellAttribute(string format)        {            this.Format = format;        }        /// <summary>        /// 浮点数(默认f4)、时间(默认yyyy-MM-dd HH:mm:ss)等导出时的格式化字符串        /// </summary>        public string Format { get; set; }        /// <summary>        /// 列的排列顺序,未指定的ColumnIndex的按照属性顺序排在之后        /// </summary>        public int ColumnIndex { get; set; } = -1;    }    /// <summary>    /// 指示某个属性在ToolTip中显示    /// </summary>    [AttributeUsage(AttributeTargets.Property, AllowMultiple = false)]    public class ToolTipAttribute : Attribute    {        /// <summary>        /// 指示某个属性在ToolTip中显示        /// </summary>        public ToolTipAttribute()        {        }        /// <summary>        /// 指示某个属性在ToolTip中显示        /// </summary>        /// <param name="format">浮点数(默认f4)、时间(默认yyyy-MM-dd HH:mm:ss)等导出时的格式化字符串</param>        public ToolTipAttribute(string format)        {            this.Format = format;        }        /// <summary>        /// 浮点数(默认f4)、时间(默认yyyy-MM-dd HH:mm:ss)等导出时的格式化字符串        /// </summary>        public string Format { get; set; }        /// <summary>        /// ToolTip从上到下的排列顺序,未指定的Index将按照属性顺序排在之后        /// </summary>        public int Index { get; set; } = 10000;    }    /// <summary>    /// 定位点绑定到地图的对象    /// </summary>    public class PosData : BaseEntityLong    {        /// <summary>        /// 信号时刻        /// </summary>        [Display(Name = "信号时刻")]        [DisplayFormat(DataFormatString = "yyyy-MM-dd HH:mm:ss.fff")]        [ExportCell(ColumnIndex = 0)]//如果导出了SigTime,则内部会自动按照SigTime降序排列后再导出        [ToolTip(Index = 0)]        public DateTime SigTime { get; set; }        /// <summary>        /// 定位经度        /// </summary>        [Display(Name = "定位经度", AutoGenerateField = false)]        [ExportCell("f4")]        [ToolTip("f4")]        public double PosLon { get; set; }        /// <summary>        /// 定位纬度        /// </summary>        [Display(Name = "定位纬度", AutoGenerateField = false)]        [ExportCell("f4")]        [ToolTip("f4")]        public double PosLat { get; set; }        /// <summary>        /// 定位经度        /// </summary>        [Display(Name = "镜像经度", AutoGenerateField = false)]        [ExportCell("f4")]        [ToolTip("f4")]        public double MirrLon { get; set; }        /// <summary>        /// 定位纬度        /// </summary>        [Display(Name = "镜像纬度", AutoGenerateField = false)]        [ExportCell("f4")]        [ToolTip("f4")]        public double MirrLat { get; set; }        /// <summary>        /// 置信度        /// </summary>        [Display(Name = "置信度")]        [ExportCell()]        [ToolTip()]        public int Confidence { get; set; }        /// <summary>        /// 当前点是否被选中(默认false)        /// </summary>        [Display(Name = "是否选中", AutoGenerateField = false)]        [NotMapped]        public bool Selected { get; set; }        /// <summary>        /// 当前点是否可见(默认true)        /// </summary>        [Display(Name = "是否可见", AutoGenerateField = false)]        [NotMapped]        public bool Visible { get; set; } = true;        /// <summary>        /// 用于生成颜色的一个key,相同的key具有相同的颜色,当ColorKey为html颜色时则使用此颜色(如#A1B2FF),默认红色#CC3333        /// </summary>、        [Display(Name = "颜色标记", AutoGenerateField = false)]        [NotMapped]        public string ColorKey { get; set; } = "#CC3333";        /// <summary>        /// 判断定位点是否在一个框选的矩形区域内        /// </summary>        /// <param name="startLon"></param>        /// <param name="startLat"></param>        /// <param name="endLon"></param>        /// <param name="endLat"></param>        /// <returns></returns>        public bool InRectangle(double startLon, double startLat, double endLon, double endLat)        {            return PosLon >= startLon && PosLon <= endLon && PosLat >= startLat && PosLat <= endLat;        }        /// <summary>        /// 内部调用的属性        /// </summary>        [Display(AutoGenerateField = false)]        [NotMapped]        public int ClusterCount { get; set; } = 1;        /// <summary>        /// 内部调用的属性        /// </summary>        [Display(AutoGenerateField = false)]        [NotMapped]        public int ClusterKey { get; set; } = int.MinValue;    }}
 |