| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146 | // using System;// using System.Collections.Generic;// using System.Drawing;// using System.Globalization;// using System.IO;// using System.Linq;// using InABox.Core;//// namespace Comal.Classes// {//     ////     public class GeoJSONCrsProperties//     {//         public string Name { get; set; }//     }////     public class GeoJSONCrs//     {//         public string Type { get; set; }//         public GeoJSONCrsProperties Properties { get; set; }//     }////     public class GeoJSONFeatureGeometry//     {//         public string Type { get; set; }//         public List<List<List<List<float>>>> Coordinates { get; set; }////         public List<PointF> Points()//         {//             var result = new List<PointF>();//             var list = Coordinates?.FirstOrDefault()?.FirstOrDefault() ?? new List<List<float>>();//             foreach (var item in list)//             {//                 if (item.Count == 2)//                     result.Add(new PointF(item[0], item[1]));//             }//             return result;//         }//         //         public Tuple<PointF,PointF> Bounds()//         {//             float minX = float.MaxValue, minY = float.MaxValue, maxX = float.MinValue, maxY = float.MinValue;//             var points = Points();//             foreach (var point in points)//             {//                 if (point.X < minX) minX = point.X;//                 if (point.X > maxX) maxX = point.X;//                 if (point.Y < minY) minY = point.Y;//                 if (point.Y > maxY) maxY = point.Y;//             }//             return new Tuple<PointF,PointF>(new PointF(minX, minY), new PointF(maxX, maxY));//         }//     }////     public class GeoJSONFeatureProperties//     {//         public int? Land_ID { get; set; }//         public string? Road_Number_type { get; set; }//         public string? Road_Number_1 { get; set; }//         public string? Road_Number_2 { get; set; }//         public string? Lot_Number { get; set; }//         public string? Road_Name { get; set; }//         public string? Road_Type { get; set; }//         public string? Road_Suffix { get; set; }//         public string? Locality { get; set; }//         public string? View_Scale { get; set; }//         public double? ST_Area_Shape_ { get; set; }//         public double? ST_Perimeter_Shape_ { get; set; }////         public string ID() => Land_ID?.ToString() ?? "";//         //         public string FullAddress() => $"{Street()} {Suburb()} {State()} {Country()}".Trim().ToUpper();//         //         public String Street()//         {//             List<String> result = new List<string>();//             if (string.IsNullOrWhiteSpace(Lot_Number))//             {//                 if (!string.IsNullOrWhiteSpace(Road_Number_2))//                     result.Add($"{Road_Number_1 ?? ""}/{Road_Number_2 ?? ""}");//                 else//                     result.Add(Road_Number_1 ?? "");//             }//             else//                 result.Add($"LOT {Lot_Number ?? ""}");//             result.Add(Road_Name ?? "");//             result.Add(Road_Type ?? "");//             //             return CultureInfo.CurrentCulture.TextInfo.ToTitleCase(string.Join(" ", result).ToLower());//         }////         public String Suburb() => CultureInfo.CurrentCulture.TextInfo.ToTitleCase(Locality?.ToLower() ?? "");//         //         public String State() => "";//         //         public String Postcode() => "";////         public String Country() => "";////     }////     public class GeoJSONFeature//     {//         public string? Type { get; set; }////         public GeoJSONFeatureProperties? Properties { get; set; }//         //         public GeoJSONFeatureGeometry? Geometry { get; set; }//         //     }////     public class GeoJSONFile//     {//         public string? Type { get; set; }//         public string? Name { get; set; }//         public GeoJSONCrs? Crs { get; set; }//         public List<GeoJSONFeature>? Features { get; set; }////         public static GeoJSONFile? Load(string filename)//         {//             var fs = new FileStream(filename, FileMode.Open);//             var geojson = Serialization.Deserialize<GeoJSONFile>(fs);//             return geojson;//         }//     }//     //     public class GeoFence : Entity, IRemotable, IPersistent//     {//         public String Street { get; set; }//         public String City { get; set; }//         public String State { get; set; }//         public String Country { get; set; }//         public String PostCode { get; set; }////         public string FullAddress { get; set; }//         //         public double MinX { get; set; }//         public double MinY { get; set; }//         public double MaxX { get; set; }//         public double MaxY { get; set; }//         //         public string Geometry { get; set; }//     }//     // }
 |