123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181 |
- 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;
- using DW5S.ViewModel;
- 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 : BaseViewModel<long>
- {
- /// <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;
- }
- }
|