public JsonResult OnZonesLoad() { List <QuestDTO> quest = QuestsObj(); List <ZonesLoad> zonesLoad = new List <ZonesLoad>(); double argLat = 0, ardLong = 0; foreach (QuestDTO obj in quest) { ZonesLoad zlQuest = new ZonesLoad(); argLat = 0; ardLong = 0; foreach (PointDTO point in obj.pointDTO) { argLat += point.Latitude; ardLong += point.Longitude; } zlQuest.ArgLatitude = (obj.pointDTO.Count == 0) ? 0 : argLat / obj.pointDTO.Count; zlQuest.ArgLongtude = (obj.pointDTO.Count == 0) ? 0 : ardLong / obj.pointDTO.Count; zlQuest.Name = obj.Name; obj.pointDTO.ForEach(x => zlQuest.coordinates.Add(new double[2] { x.Latitude, x.Longitude })); Random randonGen = new Random(); Color randomColor = Color.FromArgb(70, randonGen.Next(255), randonGen.Next(255), randonGen.Next(255)); zlQuest.fillColor = "#" + randomColor.R.ToString("X2") + randomColor.G.ToString("X2") + randomColor.B.ToString("X2") + randomColor.A.ToString("X2"); zonesLoad.Add(zlQuest); //ZonesLoad.Features feature = new ZonesLoad.Features(); // feature.id = obj.Id; // ZonesLoad.Geometry geometry = new ZonesLoad.Geometry(); // obj.pointDTO.ForEach(x => geometry.coordinates[0].Add(new double[2] { x.Latitude, x.Longitude })); // feature.geometry = geometry; // Random randonGen = new Random(); // Color randomColor = Color.FromArgb(255, randonGen.Next(255), randonGen.Next(255), randonGen.Next(255)); // ZonesLoad.Options options = new ZonesLoad.Options(); // options.fillColor = "#" + randomColor.R.ToString("X2") + randomColor.G.ToString("X2") + randomColor.B.ToString("X2") + randomColor.A.ToString("X2"); // feature.options = options; // ZonesLoad.Properties properties = new ZonesLoad.Properties(); // properties.name = obj.Name; // properties.dateTime = obj.StartQuest; // feature.properties = properties; // zonesLoad.features.Add(feature); } return(Json(zonesLoad)); }
public JsonResult OnZonesLoadOneQuest(int module) { QuestDTO quest = QuestServices.Get(module); ZonesLoad zonesLoad = new ZonesLoad(); double argLat = 0, ardLong = 0; double Radius = 0; foreach (PointDTO point in quest.pointDTO) { argLat += point.Latitude; ardLong += point.Longitude; } argLat = (quest.pointDTO.Count == 0) ? 0 : argLat / quest.pointDTO.Count; ardLong = (quest.pointDTO.Count == 0) ? 0 : ardLong / quest.pointDTO.Count; foreach (PointDTO point in quest.pointDTO) { double TRadius = Math.Sqrt(Math.Pow(argLat - point.Latitude, 2) + Math.Pow(ardLong - point.Longitude, 2)); Radius = Radius > TRadius ? Radius : TRadius; } Radius += 0.002; zonesLoad.Bounds = new double[2][] { new double[2] { argLat + Radius, ardLong - Radius }, new double[2] { argLat - Radius, ardLong + Radius } }; zonesLoad.ArgLatitude = argLat; zonesLoad.ArgLongtude = ardLong; zonesLoad.Name = quest.Name; quest.pointDTO.ForEach(x => zonesLoad.coordinates.Add(new double[2] { x.Latitude, x.Longitude })); Random randonGen = new Random(); Color randomColor = Color.FromArgb(70, randonGen.Next(255), randonGen.Next(255), randonGen.Next(255)); zonesLoad.fillColor = "#" + randomColor.R.ToString("X2") + randomColor.G.ToString("X2") + randomColor.B.ToString("X2") + randomColor.A.ToString("X2"); return(Json(zonesLoad)); }