コード例 #1
0
        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));
        }
コード例 #2
0
        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));
        }