123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141 |
- using System;
- using System.Collections.Generic;
- using System.ComponentModel.DataAnnotations;
- using System.ComponentModel.DataAnnotations.Schema;
- namespace DataSimulation.Repostory
- {
- /// <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;
- }
- [Serializable]
- public class FlightInfo
- {
- public FlightInfo()
- {
- }
- public FlightInfo(string name, double speed, double lon, double lat)
- {
- FlightName = name;
- Speed = speed;
- FlightLon = lon;
- FlightLat = lat;
- }
- [Display(Name = "航迹名称")]
- [ExportCell("")]
- public string FlightName { get; set; }
- /// <summary>
- /// 速度m/s
- /// </summary>
- [Display(Name = "航迹速度(m/s)")]
- [ExportCell("f3")]
- public double Speed { get; set; }
- [Display(Name = "航迹经度(°)", AutoGenerateField = false)]
- [ExportCell("f3")]
- public double FlightLon { get; set; }
- [Display(Name = "航迹纬度(°)", AutoGenerateField = false)]
- [ExportCell("f3")]
- public double FlightLat { get; set; }
- [Display(Name = "是否选中", AutoGenerateField = false)]
- [NotMapped]
- public bool Selected { get; set; }
- public override string ToString()
- {
- return $"航迹:{FlightName}\r\n{FlightLon},{FlightLat}°";
- }
- public string GetFilghtName()
- {
- return $"DrawFlightLine_{FlightName}_{Speed}";
- }
- /// <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 FlightLon >= startLon && FlightLon <= endLon && FlightLat >= startLat && FlightLat <= endLat;
- }
- public bool EqualFlight(FlightInfo flight)
- {
- return FlightName == flight.FlightName && Speed <= flight.Speed && FlightLon >= flight.FlightLon && FlightLat <= flight.FlightLat;
- }
- }
- }
|