public MapFilterView()
        {
            _map = new C1Map();
            _map.UseAntiAliasedGraphics = true;
            _map.Dock = DockStyle.Fill;
            _map.TileLayer.TileSource = new VirtualEarthRoadSource();
            _map.ZoomTool.Visible     = false;
            _map.PanTool.Visible      = false;
            _map.Viewport.Zoom        = 2.15;
            _map.AllowZooming         = false;
            _map.Viewport.Center      = new C1.Win.Interop.Point(-80.8, 39.8);

            _map.MouseClick += Map_MouseClick;

            _layer = new C1.Win.Map.VectorLayer {
                LabelVisibility = LabelVisibility.AutoHide
            };
            _layer.Style.BackColor    = Color.FromArgb(0x80, Color.Green);
            _layer.Style.Stroke.Color = Color.FromArgb(0x80, Color.White);
            _layer.Style.Stroke.Width = 1;
            _map.Layers.Add(_layer);

            _selectedLayer = new C1.Win.Map.VectorLayer {
                LabelVisibility = LabelVisibility.AutoHide
            };
            _selectedLayer.LabelStyle.ForeColor = Color.FromArgb(0xC0, 0x50, 0x4d);
            _selectedLayer.Style.BackColor      = Color.FromArgb(0x80, Color.Gold);
            _selectedLayer.Style.Stroke.Color   = Color.FromArgb(0x80, Color.White);
            _selectedLayer.Style.Stroke.Width   = 1;
            _map.Layers.Add(_selectedLayer);

            Controls.Add(_map);
        }
Пример #2
0
        private void RouteControl_Load(object sender, EventArgs e)
        {
            // Init map.
            _mapControl = new MapUserControl(new VirtualEarthHybridSource())
            {
                Dock = DockStyle.Fill
            };
            panel1.Controls.Add(_mapControl);

            _map = _mapControl.Map;
            _map.Viewport.Zoom = 1;

            // Create layers.
            _cityLayer = new C1.Win.Map.VectorLayer();
            _cityLayer.LabelVisibility = LabelVisibility.Visible;
            _map.Layers.Add(_cityLayer);

            _routeLayer = new C1.Win.Map.VectorLayer();
            _routeLayer.Style.Stroke.Width = 2;
            _routeLayer.Style.Stroke.Color = Color.Red;
            _routeLayer.Opacity            = 0.6;

            _map.Layers.Add(_routeLayer);

            // Create routes.
            CreateRoutes();
        }
        private void Overview_Load(object sender, EventArgs e)
        {
            if (!DesignMode)
            {
                var sources = new List <SourceMaps.ITileSource>()
                {
                    new VirtualEarthAerialSource(),
                    new VirtualEarthRoadSource(),
                    new VirtualEarthHybridSource(),
                    // Custom map
                    new OpenStreetTileSource()
                };

                // Create maps
                var maps = sources.Select(x => new MapUserControl(x));

                // For each map create the layer
                maps
                .ToList()
                .ForEach(x =>
                {
                    //x.Map.Viewport.Zoom = 5;
                    var _layer = new C1.Win.Map.VectorLayer();
                    x.Map.Layers.Add(_layer);
                });

                _panel.Controls.AddRange(maps.ToArray());
                SetSizeMaps();
            }
        }
 private C1.Win.Map.VectorItem FindShop(C1.Win.Interop.Point point, C1.Win.Map.VectorLayer layer)
 {
     foreach (C1.Win.Map.VectorPlacemark mark in layer.Items)
     {
         var p = mark.Geometry.Center;
         if (Math.Abs(p.X - point.X) < 1 && Math.Abs(p.Y - point.Y) < 1)
         {
             return(mark);
         }
     }
     return(null);
 }
Пример #5
0
        private void MarkControl_Load(object sender, EventArgs e)
        {
            if (!DesignMode)
            {
                // Init map
                _mapControl = new MapUserControl(new VirtualEarthAerialSource());
                _mapControl.Map.Viewport.Zoom = 1;
                _mapControl.Dock = DockStyle.Fill;

                // Create layer
                _layer = new C1.Win.Map.VectorLayer();
                _mapControl.Map.Layers.Add(_layer);

                _panel.Controls.Add(_mapControl);

                // Init table
                _table.Clear();
                var columns = new List <KeyValuePair <string, string> >()
                {
                    new KeyValuePair <string, string>("Number", "№"),
                    new KeyValuePair <string, string>("longitude", "Longitude"),
                    new KeyValuePair <string, string>("latitude", "Latitude")
                };

                _table.Columns.AddRange(
                    columns.Select(x =>
                                   new DataColumn()
                {
                    ColumnName = x.Key
                }).ToArray()
                    );

                _grid.Columns.AddRange(
                    columns.Select(x =>
                                   new DataGridViewTextBoxColumn()
                {
                    HeaderText = x.Value, Width = x.Key == "Number" ? 30 : 70, DataPropertyName = x.Key
                }).ToArray()
                    );

                _grid.DataSource = _table;

                // Create marks
                CreateMarks();
            }
        }
Пример #6
0
        protected override void InitMap()
        {
            base.InitMap();

            c1Map1.Viewport.Zoom = 1;

            var layer = new C1.Win.Map.VectorLayer {
                LabelVisibility = LabelVisibility.AutoHide
            };

            layer.LabelStyle.ForeColor = Color.FromArgb(0xC0, 0x50, 0x4d);
            layer.Style.BackColor      = Color.FromArgb(0x80, Color.Gold);
            layer.Style.Stroke.Color   = Color.FromArgb(0x80, Color.White);
            layer.Style.Stroke.Width   = 1;
            c1Map1.Layers.Add(layer);

            using (var stream = MapReader.OpenFile("Resources\\Cities100K.txt"))
            {
                var cities = City.Read(stream);
                var top500 = cities.OrderByDescending(city => city.Population).Take(500);

                foreach (var city in top500)
                {
                    var mark = new C1.Win.Map.VectorPlacemark
                    {
                        Geometry = new GeoPoint(city.Location.X, city.Location.Y),
                        Lod      = GetLod(city),
                        Tag      = city.Name + ":\r\n" + city.Population,
                        Marker   =
                        {
                            Size          = GetSize(city),
                            Shape         = MarkerShape.Circle,
                            Caption       = city.Name,
                            LabelPosition = LabelPosition.Right
                        }
                    };

                    layer.Items.Add(mark);
                }
            }
        }
Пример #7
0
        private void CreateGrids()
        {
            var layer = new VectorLayer {
                LabelVisibility = LabelVisibility.Visible, Track = false
            };

            c1Map1.Layers.Add(layer);

            layer.LabelStyle.ForeColor = Color.DarkGray;
            layer.Style.Stroke.Color   = Color.DarkGray;
            layer.Style.Stroke.Style   = DashStyle.Dash;
            layer.Style.Stroke.Width   = 1;

            for (int lon = -180; lon <= 180; lon += 30)
            {
                var points = new List <GeoPoint>();
                for (int lat = -85; lat <= 85; lat++)
                {
                    points.Add(new GeoPoint(lon, lat));
                }
                var pl = new VectorPolyline
                {
                    Geometry = new GeoLineString(points)
                };
                layer.Items.Add(pl);

                var lbl = Math.Abs(lon) + "°";
                if (lon > 0)
                {
                    lbl += "E";
                }
                else if (lon < 0)
                {
                    lbl += "W";
                }

                var pm = new VectorPlacemark
                {
                    Geometry = new GeoPoint(lon, 0),
                    Marker   = { Caption = lbl, LabelPosition = LabelPosition.Top }
                };
                layer.Items.Add(pm);
            }

            for (int lat = -80; lat <= 80; lat += 20)
            {
                var points = new List <GeoPoint>();
                for (int lon = -180; lon <= 180; lon++)
                {
                    points.Add(new GeoPoint(lon, lat));
                }
                var pl = new VectorPolyline
                {
                    Geometry = new GeoLineString(points)
                };
                layer.Items.Add(pl);

                var lbl = Math.Abs(lat) + "°";
                if (lat > 0)
                {
                    lbl += "N";
                }
                else if (lat < 0)
                {
                    lbl += "S";
                }

                var pm = new VectorPlacemark
                {
                    Geometry = new GeoPoint(0, lat),
                    Marker   = { Caption = lbl, LabelPosition = LabelPosition.Right }
                };
                layer.Items.Add(pm);
            }
        }
Пример #8
0
        private void Analysis_Load(object sender, EventArgs e)
        {
            dfOlap.AutoApply           = true;
            dfOlap.AutoGenerateFilters = false;
            dfOlap.FilterChanged      += DfOlap_FilterChanged;
            dfMap                     = new C1DataFilter();
            dfMap.AutoApply           = true;
            dfMap.AutoGenerateFilters = false;
            dfMap.FilterChanged      += DfMap_FilterChanged;

            var dashboardLayout = new C1DashboardLayout();

            _vectorLayer = new C1.Win.Map.VectorLayer()
            {
                LabelVisibility = LabelVisibility.Visible
            };
            _vectorLayer.LabelStyle.Font = new Font(Font.FontFamily, 7);

            Map.TileLayer.TileSource = new VirtualEarthRoadSource();
            Map.Layers.Add(_vectorLayer);

            var engine = OlapPanel.FlexPivotEngine;

            engine.DataSource = DataService.GetService().ProductWiseSaleCollection;
            InitOlap(engine);

            var selector = new ValRangeSelector()
            {
                Dock = DockStyle.Bottom
            };

            ChecklistFilter fCategories = new ChecklistFilter("Category", true);

            fCategories.HeaderText      = Strings.Resource.DataFilter_Categories;
            fCategories.ItemsSource     = DataService.GetService().ProductWiseSaleCollection;
            fCategories.ValueMemberPath = "Category";
            fCategories.SelectAll();
            dfOlap.Filters.Add(fCategories);
            dfMap.Filters.Add(fCategories);
            ChecklistFilter fModels = new ChecklistFilter("Product", true);

            fModels.HeaderText      = Strings.Resource.DataFilter_Products;
            fModels.ItemsSource     = fCategories.ItemsSource;
            fModels.ValueMemberPath = "Product";
            fModels.SelectAll();
            dfOlap.Filters.Add(fModels);
            dfMap.Filters.Add(fModels);
            RangeFilter fSales = new RangeFilter("Sales", true);

            fSales.HeaderText = Strings.Resource.DataFilter_Sales;
            var list = from prod in DataService.GetService().ProductWiseSaleCollection.Cast <ProductsWiseSaleItem>() select prod.Sales;

            fSales.Maximum = list.Max();
            fSales.Minimum = list.Min();
            dfOlap.Filters.Add(fSales);
            dfMap.Filters.Add(fSales);

            selector.DateRangeChanged += (s, ev) =>
            {
                dfOlap.DataSource = DataService.GetService().ProductWiseSaleCollection;
                dfMap.DataSource  = DataService.GetService().GetRegionWiseSalesWithCategory();

                DataService.GetService().GetRegionWiseSaleCollection = () => dfMap.View.ToList();

                DataService.GetService().DateRange = ev.NewValue;
                UpdataMapMark();

                chartOpportunities.DataSource = DataService.GetService().OpportunityItemList;
                chartOpportunities.Series.Clear();
                var series = new Series();
                series.Binding = series.Name = "Sales";
                chartOpportunities.Series.Add(series);
                chartOpportunities.BindingX           = "Level";
                chartOpportunities.DataLabel.Position = C1.Chart.LabelPosition.Center;
                chartOpportunities.DataLabel.Content  = "{}{y:C0}";
                chartOpportunities.ChartType          = C1.Chart.ChartType.Funnel;
            };
            Controls.Add(selector);
            dashboardLayout.Options.ToolIconAppearance = ToolIconAppearance.UpperRight;
            dashboardLayout.AttachToLayout(new SplitLayout(c1SplitContainerMain));
            IconBox settings = new IconBox()
            {
                BackgroundImage = Properties.Resources.settings_work_tool
            };

            settings.Click += (s, ev) =>
            {
                OlapPanel.Location = PointToClient(settings.PointToScreen(new Point(-2, settings.Height + 2)));
                if (OlapPanel.Right > Right)
                {
                    OlapPanel.Left = Right - OlapPanel.Width - 2;
                }
                OlapPanel.Parent  = this;
                OlapPanel.Visible = true;
                OlapPanel.BringToFront();
            };
            OlapPanel.MouseLeave += (s, ev) => OlapPanel.Visible = false;
            IconBox dataFilter = new IconBox()
            {
                BackgroundImage = Properties.Resources.C1DataFilter
            };

            dataFilter.Click += (s, ev) =>
            {
                dfOlap.Location = PointToClient(dataFilter.PointToScreen(new Point(-2, dataFilter.Height + 2)));
                if (dfOlap.Right > Right)
                {
                    dfOlap.Left = Right - dfOlap.Width - 2;
                }
                dfOlap.Parent  = this;
                dfOlap.Visible = true;
                dfOlap.BringToFront();
            };
            settings.VisibleChanged += (s, ev) => {
                settings.Visible   = dashboardLayout.GetSelectedItem()?.ItemContainer == c1SplitterPanelGrid;
                dataFilter.Visible = settings.Visible;
            };
            dfOlap.MouseLeave += (s, ev) => dfOlap.Visible = false;
            OlapGrid.Resize   += (s1, ev1) => { OlapPanel.Visible = false; dfOlap.Visible = false; };
            dashboardLayout.ItemContainerSelected += (s, ev) =>
            {
                settings.Visible   = dashboardLayout.GetSelectedItem()?.ItemContainer == c1SplitterPanelGrid;
                dataFilter.Visible = settings.Visible;
            };
            dashboardLayout.Options.HeaderElements.Add(dataFilter);
            dashboardLayout.Options.HeaderElements.Add(settings);
            dashboardLayout.SetCaption(c1SplitterPanelGrid, Strings.Resource.ProductWise_Header);
            dashboardLayout.SetCaption(c1SplitterPanel3, Strings.Resource.RegionWise_Header);
            dashboardLayout.SetCaption(c1SplitterPanel4, Strings.Resource.Opportunities_Header);
            this.c1SplitterPanelGrid.Width = 565;
            selector.SendToBack();
            ScanControls(this);
        }
Пример #9
0
        protected override void InitMap()
        {
            base.InitMap();
            c1Map1.Viewport.Zoom = 1;
            var layer = new VectorLayer {
                LabelVisibility = LabelVisibility.Visible, Track = false
            };

            c1Map1.Layers.Add(layer);

            layer.LabelStyle.ForeColor = Color.DarkGray;
            layer.Style.Stroke.Color   = Color.DarkGray;
            layer.Style.Stroke.Style   = DashStyle.Dash;
            layer.Style.Stroke.Width   = 1;

            for (int lon = -180; lon <= 180; lon += 30)
            {
                var pl = new VectorPolyline
                {
                    Geometry = new GeoLineString(new[] { new GeoPoint(lon, -85), new GeoPoint(lon, 85) })
                };
                layer.Items.Add(pl);

                var lbl = Math.Abs(lon) + "°";
                if (lon > 0)
                {
                    lbl += "E";
                }
                else if (lon < 0)
                {
                    lbl += "W";
                }

                var pm = new VectorPlacemark
                {
                    Geometry = new GeoPoint(lon, 0),
                    Marker   = { Caption = lbl, LabelPosition = LabelPosition.Top }
                };
                layer.Items.Add(pm);
            }

            for (int lat = -80; lat <= 80; lat += 20)
            {
                var pl = new VectorPolyline
                {
                    Geometry = new GeoLineString(new[] { new GeoPoint(-180, lat), new GeoPoint(180, lat) })
                };
                layer.Items.Add(pl);

                var lbl = Math.Abs(lat) + "°";
                if (lat > 0)
                {
                    lbl += "N";
                }
                else if (lat < 0)
                {
                    lbl += "S";
                }

                var pm = new VectorPlacemark
                {
                    Geometry = new GeoPoint(0, lat),
                    Marker   = { Caption = lbl, LabelPosition = LabelPosition.Right }
                };
                layer.Items.Add(pm);
            }
        }
Пример #10
0
        protected override void InitMap()
        {
            base.InitMap();
            c1Map1.Viewport.Zoom = 1;
            using (var stream = MapReader.OpenFile("Resources\\database.xml"))
            {
                var serializer = new XmlSerializer(typeof(DataBase));
                _factories = (DataBase)serializer.Deserialize(stream);
            }

            var layerFactory = new VectorLayer();
            var factoryShape = new MarkerImageShape {
                Image = Image.FromFile("Resources\\factory.png")
            };
            var factoryMarker = new Marker
            {
                Size        = new SizeF(60, 60),
                Shape       = MarkerShape.Custom,
                CustomShape = factoryShape
            };

            foreach (var factory in _factories.Factories)
            {
                var item = new C1.Win.Map.VectorPlacemark
                {
                    Geometry = new GeoPoint(factory.Longitude, factory.Latitude),
                    Marker   = factoryMarker,
                    Tag      = factory.Name
                };
                layerFactory.Items.Add(item);
            }
            c1Map1.Layers.Add(layerFactory);

            var layerOffice = new VectorLayer();

            foreach (var office in _factories.Offices)
            {
                var item = new C1.Win.Map.VectorPlacemark
                {
                    Geometry = new GeoPoint(office.Longitude, office.Latitude),
                    Tag      = office.Name
                };
                var officeMarker = new Marker
                {
                    Size        = new SizeF(60, 60),
                    Shape       = MarkerShape.Custom,
                    CustomShape = new OfficeShape(office)
                };
                item.Marker = officeMarker;

                item.Style.Font = new Font("Arial", 9f);

                layerOffice.Items.Add(item);
            }
            c1Map1.Layers.Add(layerOffice);

            var layerStore = new VirtualLayer();

            layerStore.Slices.Add(new MapSlice(0, 1, 1));
            var storeSlices = (int)Math.Pow(2, LocalStoreSource.MinStoreZoom);

            layerStore.Slices.Add(new MapSlice(LocalStoreSource.MinStoreZoom, storeSlices, storeSlices));
            layerStore.ItemsSource = new LocalStoreSource(_factories);
            c1Map1.Layers.Add(layerStore);
        }