private void Button_Click(object sender, RoutedEventArgs e)
        {
            ShapefileLayer areaLayer = Map1.FindLayer <ShapefileLayer>("countries-900913");

            areaLayer.UseRandomStyle(120);
            Map1.Refresh("AreaOverlay");
        }
Example #2
0
        private void Refresh()
        {
            ShapefileLayer areaLayer = Map1.FindLayer <ShapefileLayer>("countries-900913");

            if (areaLayer == null)
            {
                return;
            }
            areaLayer.Styles.Clear();
            ClassBreakStyle classBreakStyle = ClassBreakStyle.Create(columnName, 281396894, 5000000, 11, DimensionType.Area, colorFamily, new GeoColor(50, 100, 200, 150), 0.01f);

            classBreakStyle.ClassBreaks[0].Value = 0;
            areaLayer.Styles.Add(classBreakStyle);

            LegendTitleTextBlock.Text = "The population of countries";
            ClassBreak[] classBreaks = classBreakStyle.ClassBreaks.OrderBy(i => i.Value).ToArray();
            for (int i = 0; i < classBreaks.Length; i++)
            {
                ClassBreak fromClassBreak = classBreaks[i];
                ClassBreak toClassBreak   = i + 1 < classBreaks.Length ? classBreaks[i + 1] : null;
                foreach (var style in fromClassBreak.Styles)
                {
                    if (toClassBreak != null)
                    {
                        style.Name = $"{(fromClassBreak.Value / 1000000).ToString("N0")} ~ {(toClassBreak.Value / 1000000).ToString("N0")} million";
                    }
                    else
                    {
                        style.Name = $">= {(fromClassBreak.Value / 1000000).ToString("N0")} million";
                    }
                }
            }
            LegendView.Update(classBreaks.SelectMany(i => i.Styles));
            Map1.Refresh(RefreshType.Redraw);
        }
        private void Map1_MapClick(object sender, SlimGis.MapKit.WinForms.MapMouseEventArgs e)
        {
            // We added a ShapefileLayer in the Loaded event,
            // it's default name is the name of the shapefile.
            // so here, we could find the layer back by the shapefile name without extension.
            FeatureLayer featureLayer      = Map1.FindLayer <FeatureLayer>("countries-900913");
            Feature      identifiedFeature = IdentifyHelper.Identify(featureLayer, e.WorldCoordinate, Map1.CurrentScale, Map1.MapUnit).FirstOrDefault();

            MemoryLayer dynamicLayer = Map1.FindLayer <MemoryLayer>("Highlight Layer");

            if (dynamicLayer == null)
            {
                dynamicLayer = new MemoryLayer {
                    Name = "Highlight Layer"
                };
                dynamicLayer.UseRandomStyle();
                Map1.AddStaticLayers("HighlightOverlay", dynamicLayer);
            }

            dynamicLayer.Features.Clear();
            if (identifiedFeature != null)
            {
                dynamicLayer.Features.Add(identifiedFeature);
            }

            Map1.Overlays["HighlightOverlay"].Refresh();
        }
Example #4
0
        private void Refresh()
        {
            ShapefileLayer areaLayer = Map1.FindLayer <ShapefileLayer>("countries-900913");

            if (areaLayer == null)
            {
                return;
            }
            if (values == null)
            {
                values = areaLayer.Source.GetUniqueFieldValues(columnName).Distinct().ToArray();
            }

            areaLayer.Styles.Clear();
            ValueStyle valueStyle = ValueStyle.Create(columnName, values, DimensionType.Area, colorFamily, new GeoColor(255, 108, 144, 150), 0.01f);

            areaLayer.Styles.Add(valueStyle);

            LegendTitleTextBlock.Text = $"Thematic by \"{columnName}\" column";
            LegendView.Update(valueStyle.ValueItems.OrderBy(i => i.Value).SelectMany(i =>
            {
                foreach (var style in i.Styles)
                {
                    style.Name = $"{columnName} = \"{i.Value}\"";
                }
                return(i.Styles);
            }));
            Map1.Refresh(RefreshType.Redraw);
        }
Example #5
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            ShapefileLayer pointLayer = Map1.FindLayer <ShapefileLayer>("cities-900913");

            SyncFontStyleSettings(pointLayer, true);
            Map1.Refresh("PointOverlay");
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            FeatureLayer featureLayer = Map1.FindLayer <FeatureLayer>("countries-900913");

            featureLayer.UseRandomStyle();
            Map1.Refresh("Dynamic Overlay");
        }
Example #7
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            ShapefileLayer pointLayer = Map1.FindLayer <ShapefileLayer>("cities-900913");

            pointLayer.UseRandomStyle(120);

            SyncSymbolSettings(pointLayer);
        }
Example #8
0
        private void CheckBox_Click(object sender, RoutedEventArgs e)
        {
            bool useDash = ((CheckBox)sender).IsChecked.Value;

            ShapefileLayer lineLayer = Map1.FindLayer <ShapefileLayer>("streets-900913");

            ((LineStyle)lineLayer.Styles[0]).Pen.DashPattern = useDash ? new[] { 4f, 4f } : null;
            Map1.Refresh("LineOverlay");
        }
Example #9
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            ShapefileLayer lineLayer = Map1.FindLayer <ShapefileLayer>("streets-900913");

            float[] dashPattern = ((LineStyle)lineLayer.Styles[0]).Pen.DashPattern;
            lineLayer.UseRandomStyle();
            ((LineStyle)lineLayer.Styles[0]).Pen.DashPattern = dashPattern;

            Map1.Refresh("LineOverlay");
        }
        private void MapTypeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            GoogleMapsLayer gooleMapsLayer = Map1.FindLayer <GoogleMapsLayer>("Google Maps");

            if (gooleMapsLayer != null)
            {
                gooleMapsLayer.MapsType = (GoogleMapsType)MapTypeComboBox.SelectedItem;
                Map1.Refresh(RefreshType.Redraw);
            }
        }
Example #11
0
        private void MapTypeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            StamenMapLayer stamenMapLayer = Map1.FindLayer <StamenMapLayer>("Stamen Map");

            if (stamenMapLayer != null)
            {
                stamenMapLayer.MapType = (StamenMapType)MapTypeComboBox.SelectedItem;
                Map1.Refresh(RefreshType.Redraw);
            }
        }
Example #12
0
        private void MapTypeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            BingMapsLayer bingMapsLayer = Map1.FindLayer <BingMapsLayer>("Bing Maps");

            if (bingMapsLayer != null)
            {
                bingMapsLayer.MapsType = (BingMapsType)MapTypeComboBox.SelectedItem;
                Map1.Refresh(RefreshType.Redraw);
            }
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            MemoryLayer bufferResultLayer = Map1.FindLayer <MemoryLayer>("BufferResultLayer");

            if (bufferResultLayer.Features.Count == 0)
            {
                Feature bufferedFeature = new Feature(highlightFeature.Geometry.GetConvexHull());
                bufferResultLayer.Features.Add(bufferedFeature);
                Map1.Refresh("BufferedOverlay");
            }
        }
Example #14
0
        private void SynbolSettingsComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            ShapefileLayer pointLayer = Map1.FindLayer <ShapefileLayer>("cities-900913");

            if (pointLayer == null)
            {
                return;
            }

            SyncSymbolSettings(pointLayer);
        }
Example #15
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            MemoryLayer resultLayer = Map1.FindLayer <MemoryLayer>("ResultLayer");

            if (resultLayer.Features.Count == 0)
            {
                Collection <GeoPoint> crossingPoints = highlightFeature.Geometry.GetCrossing(crossLineFeature.Geometry);
                resultLayer.Features.AddRange(crossingPoints.Select(p => new Feature(p)));
                Map1.Refresh("ResultOverlay");
            }
        }
Example #16
0
        private void UpdateStyle()
        {
            ShapefileLayer pointLayer = Map1.FindLayer <ShapefileLayer>("cities-900913");

            if (pointLayer == null)
            {
                return;
            }

            SyncFontStyleSettings(pointLayer);
            Map1.Refresh("PointOverlay");
        }
Example #17
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            MemoryLayer resultLayer = Map1.FindLayer <MemoryLayer>("ResultLayer");

            if (resultLayer.Features.Count == 0)
            {
                Geometry intersection = feature1.Geometry.GetIntersection(feature2.Geometry);
                resultLayer.Features.Add(new Feature(intersection));

                Map1.Refresh("ResultOverlay");
            }
        }
Example #18
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            MemoryLayer highlightLayer = Map1.FindLayer <MemoryLayer>("HighlightLayer");

            highlightLayer.Features.Clear();

            Button button = (Button)sender;

            switch (button.Content.ToString())
            {
            case "Polygon":
                highlightLayer.Features.Add(new Feature(CreatePolygon()));
                break;

            case "Polygon with Hole":
                highlightLayer.Features.Add(new Feature(CreatePolygonWithHole()));
                break;

            case "Ellipse":
                highlightLayer.Features.Add(new Feature(CreateEllipse()));
                break;

            case "Multi-Polygon":
                highlightLayer.Features.Add(new Feature(CreateMultiPolygon()));
                break;

            case "Rectangle":
                highlightLayer.Features.Add(new Feature(CreateRectangle()));
                break;

            case "Point":
                highlightLayer.Features.Add(new Feature(CreatePoint()));
                break;

            case "Multi-Point":
                highlightLayer.Features.Add(new Feature(CreateMultiPoint()));
                break;

            case "Line":
                highlightLayer.Features.Add(new Feature(CreateLine()));
                break;

            case "Multi-Line":
                highlightLayer.Features.Add(new Feature(CreateMultiLine()));
                break;

            default:
                break;
            }

            Map1.Refresh("HighlightOverlay");
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            MemoryLayer bufferResultLayer = Map1.FindLayer <MemoryLayer>("BufferResultLayer");

            Feature bufferedFeature = new Feature(highlightFeature.Geometry.GetBuffer((double)BufferDistanceComboBox.SelectedValue));

            bufferResultLayer.Features.Clear();
            if (bufferedFeature.Geometry != null)
            {
                bufferResultLayer.Features.Add(bufferedFeature);
                Map1.Refresh("BufferedOverlay");
            }
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            MemoryLayer resultLayer = Map1.FindLayer <MemoryLayer>("ResultLayer");

            if (resultLayer.Features.Count == 0)
            {
                Map1.FindLayer <MemoryLayer>("HighlightLayer").Features.Clear();

                GeoAreaBase unionResult = ((GeoAreaBase)feature1.Geometry).Union((GeoAreaBase)feature2.Geometry);
                resultLayer.Features.Add(new Feature(unionResult));
                Map1.Refresh("HighlightOverlay", "ResultOverlay");
            }
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            MemoryLayer resultLayer = Map1.FindLayer <MemoryLayer>("ResultLayer");

            if (resultLayer.Features.Count == 0)
            {
                Map1.FindLayer <MemoryLayer>("HighlightLayer").Features.Clear();

                Geometry difference = highlightBoundFeature.Geometry.GetDifference(highlightFeature.Geometry);
                resultLayer.Features.Add(new Feature(difference));
                Map1.Refresh("HighlightOverlay", "ResultOverlay");
            }
        }
Example #22
0
        private void Refresh()
        {
            ShapefileLayer pointLayer = Map1.FindLayer <ShapefileLayer>("cities-900913");

            if (pointLayer == null)
            {
                return;
            }
            HeatStyle heatStyle = (HeatStyle)pointLayer.Styles[0];

            heatStyle.Radius           = (2 - HeatPointSizeComboBox.SelectedIndex) * 30 + 20;
            heatStyle.ColorPaletteType = colorPaletteType;

            Map1.Refresh(RefreshType.Redraw);
        }
        private void Map1_MapSingleClick(object sender, MapClickEventArgs e)
        {
            Feature identifiedFeature = IdentifyHelper.Identify(dataLayer, e.WorldCoordinate, Map1.CurrentScale, Map1.MapUnit).FirstOrDefault();

            if (identifiedFeature != null)
            {
                double areaInSquareKilometer = ((GeoAreaBase)identifiedFeature.Geometry).GetArea(GeoUnit.Meter, AreaUnit.SquareKilometers);
                identifiedFeature.FieldValues.Add("Area", $"{areaInSquareKilometer:N2} sq. km");

                MemoryLayer highlightLayer = Map1.FindLayer <MemoryLayer>("HighlightLayer");
                highlightLayer.Features.Clear();
                highlightLayer.Features.Add(identifiedFeature);

                Map1.Refresh("HighlightOverlay");
            }
        }
        private async void Button_Click(object sender, RoutedEventArgs e)
        {
            MemoryLayer resultLayer = Map1.FindLayer <MemoryLayer>("ResultLayer");

            if (resultLayer.Features.Count == 0)
            {
                GeoMultiLine shortestResult = await Task.Run(() => feature1.Geometry.GetShortestLineTo(feature2.Geometry));

                GeoLine shortestLine = shortestResult.Lines.First();

                resultLayer.Features.Add(new Feature(shortestLine));
                resultLayer.Features.Add(new Feature(new GeoPoint(shortestLine.Coordinates.First())));
                resultLayer.Features.Add(new Feature(new GeoPoint(shortestLine.Coordinates.Last())));
                Map1.Refresh("ResultOverlay");
            }
        }
Example #25
0
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            ShapefileLayer        sectionLayer   = Map1.FindLayer <ShapefileLayer>("sections-900913");
            MemoryLayer           highlightLayer = Map1.FindLayer <MemoryLayer>("HighlightLayer");
            MemoryLayer           queryAreaLayer = Map1.FindLayer <MemoryLayer>("QueryAreaLayer");
            Geometry              queryArea      = queryAreaLayer.Features.First().Geometry;
            IEnumerable <Feature> resultFeatures = sectionLayer.Source.SpatialQuery(queryArea, (SpatialQueryMode)QueryOptionComboBox.SelectedValue);

            highlightLayer.Features.Clear();
            foreach (var feature in resultFeatures)
            {
                highlightLayer.Features.Add(feature);
            }

            Map1.Refresh("HighlightOverlay");
        }
Example #26
0
        private void Map1_MapSingleClick(object sender, MapClickEventArgs e)
        {
            Feature identifiedFeature = IdentifyHelper.Identify(dataLayer, e.WorldCoordinate, Map1.CurrentScale, Map1.MapUnit).FirstOrDefault();

            if (identifiedFeature != null)
            {
                double distanceInMeter = ((GeoLinearBase)identifiedFeature.Geometry).GetLength();
                identifiedFeature.FieldValues.Add("Distance", $"{distanceInMeter:N2} m");

                MemoryLayer highlightLayer = Map1.FindLayer <MemoryLayer>("HighlightLayer");

                highlightLayer.Features.Clear();
                highlightLayer.Features.Add(identifiedFeature);

                Map1.Refresh("HighlightOverlay");
            }
        }
Example #27
0
        private void Map1_MapSingleClick(object sender, MapClickEventArgs e)
        {
            Feature identifiedFeature = IdentifyHelper.Identify(dataLayer, e.WorldCoordinate, Map1.CurrentScale, Map1.MapUnit).FirstOrDefault();

            if (identifiedFeature != null)
            {
                MemoryLayer highlightLayer = Map1.FindLayer <MemoryLayer>("HighlightLayer");

                highlightLayer.Features.Clear();
                highlightLayer.Features.Add(identifiedFeature);

                WktTextBox.Text = identifiedFeature.ToWkt();
                WkbTextBox.Text = Convert.ToBase64String(identifiedFeature.ToWkb());

                Map1.Refresh("HighlightOverlay");
            }
        }
        private void Button_Click(object sender, RoutedEventArgs e)
        {
            if (Map1.MapUnit == GeoUnit.Meter)
            {
                return;
            }

            Map1.MapUnit = GeoUnit.Meter;
            FeatureLayer     featureLayer = Map1.FindLayer <ShapefileLayer>("countries-wgs84");
            SpatialReference srsSource    = SpatialReferences.GetWgs84();
            SpatialReference srsTarget    = SpatialReferences.GetSphericalMercator();

            featureLayer.Source.Projection = new Proj4Projection(srsSource, srsTarget);

            Map1.Overlays["countries-wgs84"].Invalidate();
            Map1.ZoomToFullBound();
        }
        private void Map1_MapClick(object sender, MapClickEventArgs e)
        {
            // We added a ShapefileLayer in the Loaded event,
            // it's default name is the name of the shapefile.
            // so here, we could find the layer back by the shapefile name without extension.
            FeatureLayer featureLayer      = Map1.FindLayer <FeatureLayer>("countries-900913");
            Feature      identifiedFeature = IdentifyHelper.Identify(featureLayer, e.WorldCoordinate, Map1.CurrentScale, Map1.MapUnit).FirstOrDefault();

            Map1.Placements.Clear();
            if (identifiedFeature != null)
            {
                Popup popup = new Popup();
                popup.Location = e.WorldCoordinate;
                popup.Content  = new Label {
                    Content = identifiedFeature.FieldValues["LONG_NAME"]
                };
                Map1.Placements.Add(popup);
            }
        }
Example #30
0
        private void Map1_MapSingleClick(object sender, MapClickEventArgs e)
        {
            Feature identifiedFeature = IdentifyHelper.Identify(dataLayer, e.WorldCoordinate, Map1.CurrentScale, Map1.MapUnit).FirstOrDefault();

            if (identifiedFeature != null)
            {
                MemoryLayer highlightLayer = Map1.FindLayer <MemoryLayer>("HighlightLayer");

                highlightLayer.Features.Clear();
                highlightLayer.Features.Add(identifiedFeature);

                GeoBound identifiedBound = identifiedFeature.GetBound();
                highlightLayer.Features.Add(new Feature(new GeoLine(identifiedBound.GetVertices())));

                GeoPoint identifiedCenter = identifiedBound.GetCentroid();
                highlightLayer.Features.Add(new Feature(identifiedCenter));

                Map1.Refresh("HighlightOverlay");
            }
        }