/// <summary> /// Setup the map with the ThinkGeo Cloud Maps overlay. Also, add the cityLimits and bufferLayer layers into a grouped LayerOverlay and display them on the map. /// </summary> private void Form_Load(object sender, EventArgs e) { // Set the map's unit of measurement to meters(Spherical Mercator) mapView.MapUnit = GeographyUnit.Meter; // Add Cloud Maps as a background overlay var thinkGeoCloudVectorMapsOverlay = new ThinkGeoCloudVectorMapsOverlay("itZGOI8oafZwmtxP-XGiMvfWJPPc-dX35DmESmLlQIU~", "bcaCzPpmOG6le2pUz5EAaEKYI-KSMny_WxEAe7gMNQgGeN9sqL12OA~~", ThinkGeoCloudVectorMapsMapType.Light); mapView.Overlays.Add(thinkGeoCloudVectorMapsOverlay); // Project cityLimits layer to Spherical Mercator to match the map projection cityLimits.FeatureSource.ProjectionConverter = new ProjectionConverter(2276, 3857); // Style cityLimits layer cityLimits.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyle.CreateSimpleAreaStyle(new GeoColor(32, GeoColors.Orange), GeoColors.DimGray); cityLimits.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Style the bufferLayer bufferLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyle.CreateSimpleAreaStyle(new GeoColor(32, GeoColors.Green), GeoColors.DimGray); bufferLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Add cityLimits to a LayerOverlay layerOverlay.Layers.Add(cityLimits); // Add bufferLayer to the layerOverlay layerOverlay.Layers.Add(bufferLayer); // Set the map extent to the cityLimits layer bounding box cityLimits.Open(); mapView.CurrentExtent = cityLimits.GetBoundingBox(); cityLimits.Close(); // Add LayerOverlay to Map mapView.Overlays.Add(layerOverlay); }
private void RenderMap() { winformsMap1.MapUnit = GeographyUnit.DecimalDegree; winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#e6e5d1")); winformsMap1.CurrentExtent = new RectangleShape(-97.7649196668701, 30.3019741827087, -97.749040989502, 30.2906445318298); WorldStreetsAndImageryOverlay worldStreetsAndImageryOverlay = new WorldStreetsAndImageryOverlay(); winformsMap1.Overlays.Add(worldStreetsAndImageryOverlay); ShapeFileFeatureLayer dallasStreetsLayer = new ShapeFileFeatureLayer(Path.Combine(rootPath, "DallasWithOneWayRoad.shp")); dallasStreetsLayer.Open(); RoutingLayer routingLayer = new RoutingLayer(); dallasStreetsLayer.Open(); routingLayer.StartPoint = dallasStreetsLayer.FeatureSource.GetFeatureById(txtStartId.Text, ReturningColumnsType.NoColumns).GetShape().GetCenterPoint(); routingLayer.EndPoint = dallasStreetsLayer.FeatureSource.GetFeatureById(txtEndId.Text, ReturningColumnsType.NoColumns).GetShape().GetCenterPoint(); dallasStreetsLayer.Close(); LayerOverlay routingOverlay = new LayerOverlay(); routingOverlay.Layers.Add("RoutingLayer", routingLayer); winformsMap1.Overlays.Add("RoutingOverlay", routingOverlay); ShowTheShortestPath(routingLayer); InMemoryFeatureLayer routingExtentLayer = new InMemoryFeatureLayer(); routingExtentLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = new AreaStyle(new GeoPen(GeoColor.SimpleColors.Green)); routingExtentLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; routingExtentLayer.InternalFeatures.Add(new Feature(new RectangleShape(-97.815409, 30.369949, -97.657999, 30.217922))); routingOverlay.Layers.Add("RoutingExtentLayer", routingExtentLayer); winformsMap1.Refresh(); }
private void RenderMap() { winformsMap1.MapUnit = GeographyUnit.DecimalDegree; winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#e6e5d1")); winformsMap1.CurrentExtent = new RectangleShape(-96.905564, 32.926216, -96.651506, 32.744942); WorldStreetsAndImageryOverlay worldStreetsAndImageryOverlay = new WorldStreetsAndImageryOverlay(); winformsMap1.Overlays.Add(worldStreetsAndImageryOverlay); ShapeFileFeatureLayer streetsLayer = new ShapeFileFeatureLayer(Path.Combine(rootPath, "DallasCounty-4326.shp")); streetsLayer.Open(); RoutingLayer routingLayer = new RoutingLayer(); streetsLayer.Open(); routingLayer.StartPoint = streetsLayer.FeatureSource.GetFeatureById(txtStartId.Text, ReturningColumnsType.NoColumns).GetShape().GetCenterPoint(); routingLayer.EndPoint = streetsLayer.FeatureSource.GetFeatureById(txtEndId.Text, ReturningColumnsType.NoColumns).GetShape().GetCenterPoint(); streetsLayer.Close(); LayerOverlay routingOverlay = new LayerOverlay(); routingOverlay.Layers.Add("RoutingLayer", routingLayer); winformsMap1.Overlays.Add("RoutingOverlay", routingOverlay); InMemoryFeatureLayer routingExtentLayer = new InMemoryFeatureLayer(); routingExtentLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = new AreaStyle(new GeoPen(GeoColor.SimpleColors.Green)); routingExtentLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; routingExtentLayer.InternalFeatures.Add(new Feature(new RectangleShape(-97.080185, 33.013491, -96.465213, 32.490127))); routingOverlay.Layers.Add("RoutingExtentLayer", routingExtentLayer); winformsMap1.Refresh(); }
public static void BuildIndex(ShapeFileFeatureLayer layer) { string sourceIdsPath = Path.ChangeExtension(layer.IndexPathFilename, ".ids"); if (layer.RequireIndex && File.Exists(layer.IndexPathFilename) && File.Exists(sourceIdsPath)) { lock (layer) { layer.Close(); layer.RequireIndex = false; layer.Open(); } } StatusBar.GetInstance().Cancelled += new EventHandler <CancelEventArgs>(BuildIndexFileDialog_Cancelled); ShapeFileFeatureSource.BuildingIndex += new EventHandler <BuildingIndexShapeFileFeatureSourceEventArgs>(ShapeFileFeatureSource_BuildingIndex); try { if (GisEditor.ActiveMap != null) { var closingOverlays = GisEditor.ActiveMap.Overlays.OfType <LayerOverlay>() .Where(tmpOverlay => tmpOverlay.Layers.OfType <ShapeFileFeatureLayer>() .Select(tmpLayer => tmpLayer.ShapePathFilename) .Contains(layer.ShapePathFilename)); Action action = new Action(() => { foreach (var closingOverlay in closingOverlays) { closingOverlay.Close(); } }); if (Application.Current == null) { action(); } else { Application.Current.Dispatcher.BeginInvoke(action); } } ShapeFileFeatureLayer.BuildIndexFile(layer.ShapePathFilename, BuildIndexMode.Rebuild); } finally { StatusBar.GetInstance().Cancelled -= new EventHandler <CancelEventArgs>(BuildIndexFileDialog_Cancelled); ShapeFileFeatureSource.BuildingIndex -= new EventHandler <BuildingIndexShapeFileFeatureSourceEventArgs>(ShapeFileFeatureSource_BuildingIndex); lock (layer) { layer.Close(); layer.RequireIndex = true; layer.Open(); } } }
void winformsMap1_TrackEnded(object sender, TrackEndedTrackInteractiveOverlayEventArgs e) { RectangleShape rectangleShape = (RectangleShape)e.TrackShape; ShapeFileFeatureLayer worldLayer = (ShapeFileFeatureLayer)winformsMap1.FindFeatureLayer("WorldLayer"); InMemoryFeatureLayer spatialQueryResultLayer = (InMemoryFeatureLayer)winformsMap1.FindFeatureLayer("SpatialQueryResultLayer"); //Spatial query to find the features intersecting the rectangle from the track rectangle. Collection <Feature> spatialQueryResults; worldLayer.Open(); spatialQueryResults = worldLayer.QueryTools.GetFeaturesIntersecting(rectangleShape, ReturningColumnsType.NoColumns); worldLayer.Close(); //Adds the selected features to the InMemoryfeatureLayer spatialQueryResultLayer.Open(); spatialQueryResultLayer.EditTools.BeginTransaction(); spatialQueryResultLayer.InternalFeatures.Clear(); foreach (Feature feature in spatialQueryResults) { spatialQueryResultLayer.EditTools.Add(feature); } spatialQueryResultLayer.EditTools.CommitTransaction(); spatialQueryResultLayer.Close(); //Refreshes the layers to show new result. winformsMap1.TrackOverlay.TrackShapeLayer.InternalFeatures.Clear(); winformsMap1.Refresh(winformsMap1.TrackOverlay); winformsMap1.Refresh(winformsMap1.Overlays["SpatialQueryResultOverlay"]); }
private void ScaleUpAndDownAFeature_Load(object sender, EventArgs e) { winformsMap1.MapUnit = GeographyUnit.DecimalDegree; WorldMapKitWmsDesktopOverlay worldMapKitDesktopOverlay = new WorldMapKitWmsDesktopOverlay(); winformsMap1.Overlays.Add(worldMapKitDesktopOverlay); winformsMap1.CurrentExtent = new RectangleShape(-139.2, 92.4, 120.9, -93.2); winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.StandardColors.White); ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(Samples.RootDirectory + @"Data\Countries02.shp"); worldLayer.Open(); Feature feature = worldLayer.QueryTools.GetFeatureById("135", new string[0]); worldLayer.Close(); InMemoryFeatureLayer inMemoryLayer = new InMemoryFeatureLayer(); inMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.FillSolidBrush.Color = GeoColor.FromArgb(100, GeoColor.SimpleColors.Green); inMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.OutlinePen.Color = GeoColor.SimpleColors.Green; inMemoryLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; inMemoryLayer.InternalFeatures.Add("135", feature); LayerOverlay inMemoryOverlay = new LayerOverlay(); inMemoryOverlay.Layers.Add("InMemoryFeatureLayer", inMemoryLayer); winformsMap1.Overlays.Add("InMemoryOverlay", inMemoryOverlay); winformsMap1.CurrentExtent = new RectangleShape(-165.946875, 86.4359375, -35.86875, -6.3765625); winformsMap1.Refresh(); }
private void degreeTranslateShape_Click(object sender, EventArgs e) { LayerOverlay layerOverlay = (LayerOverlay)mapView.Overlays["layerOverlay"]; ShapeFileFeatureLayer cityLimits = (ShapeFileFeatureLayer)layerOverlay.Layers["cityLimits"]; InMemoryFeatureLayer translatedLayer = (InMemoryFeatureLayer)layerOverlay.Layers["translatedLayer"]; // Query the cityLimits layer to get all the features cityLimits.Open(); var features = cityLimits.QueryTools.GetAllFeatures(ReturningColumnsType.NoColumns); cityLimits.Close(); // Translate the first feature's shape by the X and Y values on the UI in meters var translate = AreaBaseShape.TranslateByDegree(features[0].GetShape(), Convert.ToDouble(translateDistance.Text), Convert.ToDouble(translateAngle.Text), GeographyUnit.Meter, DistanceUnit.Meter); // Add the translated shape into translatedLayer to display the result. // If this were to be a permanent change to the cityLimits FeatureSource, you would modify the // underlying data using BeginTransaction and CommitTransaction instead. translatedLayer.InternalFeatures.Clear(); translatedLayer.InternalFeatures.Add(new Feature(translate)); // Redraw the layerOverlay to see the translated feature on the map layerOverlay.Refresh(); }
private void UserADifferentProjectionForAFeatureLayer_Load(object sender, EventArgs e) { winformsMap1.MapUnit = GeographyUnit.Meter; winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean); // If want to know more srids, please refer Projections.rtf in Documentation folder. Proj4Projection proj4Projection = new Proj4Projection(); proj4Projection.InternalProjectionParametersString = Proj4Projection.GetEpsgParametersString(4326); proj4Projection.ExternalProjectionParametersString = Proj4Projection.GetEpsgParametersString(2163); ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(Samples.RootDirectory + @"Data\Countries02.shp"); worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1; worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; worldLayer.FeatureSource.Projection = proj4Projection; worldLayer.Open(); winformsMap1.CurrentExtent = worldLayer.GetBoundingBox(); worldLayer.Close(); LayerOverlay staticOverlay = new LayerOverlay(); staticOverlay.Layers.Add("WorldLayer", worldLayer); winformsMap1.Overlays.Add(staticOverlay); winformsMap1.Refresh(); }
private void MapView_Loaded(object sender, RoutedEventArgs e) { mapView.MapUnit = GeographyUnit.DecimalDegree; LayerOverlay layerOverlay = new LayerOverlay(); shapeFileLayer = new ShapeFileFeatureLayer(SampleHelper.Get("Countries02.shp")); shapeFileLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = new AreaStyle(new GeoPen(GeoColors.Black, 1), new GeoSolidBrush(GeoColors.LightSkyBlue)); shapeFileLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; shapeFileLayer.Open(); layerOverlay.Layers.Add(shapeFileLayer); fourColorLayer = new InMemoryFeatureLayer(); ValueStyle valueStyle = new ValueStyle { ColumnName = "Color" }; valueStyle.ValueItems.Add(new ValueItem("1", AreaStyle.CreateSimpleAreaStyle(GeoColors.LightGreen))); valueStyle.ValueItems.Add(new ValueItem("2", AreaStyle.CreateSimpleAreaStyle(GeoColors.LightSkyBlue))); valueStyle.ValueItems.Add(new ValueItem("3", AreaStyle.CreateSimpleAreaStyle(GeoColors.Yellow))); valueStyle.ValueItems.Add(new ValueItem("4", AreaStyle.CreateSimpleAreaStyle(GeoColors.LightPink))); fourColorLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(valueStyle); fourColorLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; layerOverlay.Layers.Add(fourColorLayer); mapView.Overlays.Add(layerOverlay); mapView.CurrentExtent = new RectangleShape(-174, 117, 180, -120); mapView.Refresh(); }
/// <summary> /// Adds hotel popups to the map /// </summary> private void AddHotelPopups() { // Create a PopupOverlay var popupOverlay = new PopupOverlay(); // Create a layer in order to query the data var hotelsLayer = new ShapeFileFeatureLayer(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Data/Shapefile/Hotels.shp")); // Project the data to match the map's projection hotelsLayer.FeatureSource.ProjectionConverter = new ProjectionConverter(2276, 3857); // Open the layer so that we can begin querying hotelsLayer.Open(); // Query all the hotel features var hotelFeatures = hotelsLayer.QueryTools.GetAllFeatures(ReturningColumnsType.AllColumns); // Add each hotel feature to the popupOverlay foreach (var feature in hotelFeatures) { var popup = new Popup() { Position = feature.GetShape().GetCenterPoint(), Content = feature.ColumnValues["NAME"] }; popupOverlay.Popups.Add(popup); } // Close the hotel layer hotelsLayer.Close(); // Add the popupOverlay to the map and refresh mapView.Overlays.Add(popupOverlay); mapView.Refresh(); }
private void MapView_Loaded(object sender, RoutedEventArgs e) { mapView.MapUnit = GeographyUnit.DecimalDegree; mapView.CurrentExtent = new RectangleShape(-177.39584350585937, 83.113876342773437, -52.617362976074219, 14.550546646118164); ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(SampleHelper.Get("Countries02_3857.shp")); worldLayer.Open(); ProjectionConverter project = new ProjectionConverter(3857, 4326); project.Open(); Feature feature = project.ConvertToExternalProjection(worldLayer.QueryTools.GetFeatureById("135", new string[0])); project.Close(); areaBaseShape = (AreaBaseShape)feature.GetShape(); worldLayer.Close(); InMemoryFeatureLayer simplificationLayer = new InMemoryFeatureLayer(); simplificationLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; simplificationLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyle.CreateSimpleAreaStyle(GeoColor.FromArgb(255, 233, 232, 214), GeoColor.FromArgb(255, 118, 138, 69)); simplificationLayer.InternalFeatures.Add(feature); LayerOverlay simplificationOverlay = new LayerOverlay(); simplificationOverlay.TileType = TileType.SingleTile; simplificationOverlay.Layers.Add(new BackgroundLayer(new GeoSolidBrush(GeoColors.DeepOcean))); simplificationOverlay.Layers.Add("SimplificationLayer", simplificationLayer); mapView.Overlays.Add("SimplificationOverlay", simplificationOverlay); cmbSimplificationType.SelectedIndex = 0; cmbTolerance.SelectedIndex = 0; mapView.Refresh(); }
private void MapView_Loaded(object sender, RoutedEventArgs e) { mapView.MapUnit = GeographyUnit.Meter; // If want to know more srids, please refer Projections.rtf in Documentation folder. ProjectionConverter proj4Projection = new ProjectionConverter(3857, 2163); ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(SampleHelper.Get("Countries02_3857.shp")); worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyle.CreateSimpleAreaStyle(GeoColor.FromArgb(255, 233, 232, 214), GeoColor.FromArgb(255, 118, 138, 69)); worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; worldLayer.FeatureSource.ProjectionConverter = proj4Projection; worldLayer.Open(); mapView.CurrentExtent = worldLayer.GetBoundingBox(); worldLayer.Close(); LayerOverlay staticOverlay = new LayerOverlay(); staticOverlay.TileType = TileType.SingleTile; staticOverlay.Layers.Add(new BackgroundLayer(new GeoSolidBrush(GeoColors.DeepOcean))); staticOverlay.Layers.Add("WorldLayer", worldLayer); mapView.Overlays.Add(staticOverlay); mapView.Refresh(); }
private void btnEdit_Click(object sender, EventArgs e) { LayerOverlay layerOverlay = (LayerOverlay)winformsMap1.Overlays["StreetsOverlay"]; ShapeFileFeatureLayer layer1 = (ShapeFileFeatureLayer)layerOverlay.Layers["Streets"]; //Edit the geometry of a street feature. layer1.Open(); layer1.FeatureSource.BeginTransaction(); Collection <Feature> features = layer1.FeatureSource.GetFeaturesByColumnValue("RECID", "13762", ReturningColumnsType.AllColumns); //Gets the MultilineShape and add a vertes MultilineShape newMultiLineShape = (MultilineShape)features[0].GetShape(); newMultiLineShape.Lines[0].Vertices.Add(new Vertex(-97.8015, 30.2880)); //Sets the Id of the MultilineShape the same as the feature newMultiLineShape.Id = features[0].Id; //Updates the feature with the new geometry. layer1.FeatureSource.UpdateFeature(newMultiLineShape, features[0].ColumnValues); layer1.FeatureSource.CommitTransaction(); layer1.Close(); winformsMap1.Refresh(layerOverlay); btnEdit.Enabled = false; }
private void UseMapSimplification_Load(object sender, EventArgs e) { winformsMap1.MapUnit = GeographyUnit.DecimalDegree; winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean); ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(Samples.RootDirectory + @"Data\Countries02.shp"); worldLayer.Open(); Feature feature = worldLayer.QueryTools.GetFeatureById("135", new string[0]); areaBaseShape = (AreaBaseShape)feature.GetShape(); worldLayer.Close(); InMemoryFeatureLayer simplificationLayer = new InMemoryFeatureLayer(); simplificationLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; simplificationLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1; simplificationLayer.InternalFeatures.Add(feature); LayerOverlay simplificationOverlay = new LayerOverlay(); simplificationOverlay.Layers.Add("SimplificationLayer", simplificationLayer); winformsMap1.Overlays.Add("SimplificationOverlay", simplificationOverlay); winformsMap1.CurrentExtent = new RectangleShape(-177.39584350585937, 83.113876342773437, -52.617362976074219, 14.550546646118164); winformsMap1.Refresh(); }
private void HighlightAFeatureContainingPoint(PointShape point) { LayerOverlay highlightOverlay = (LayerOverlay)wpfMap1.Overlays["HighlightOverlay"]; ShapeFileFeatureLayer featureLayer = (ShapeFileFeatureLayer)((LayerOverlay)wpfMap1.Overlays["LayerFeatureOverlay"]).Layers["StatesLayer"]; InMemoryFeatureLayer highlightLayer = (InMemoryFeatureLayer)highlightOverlay.Layers["HighlightLayer"]; featureLayer.Open(); Collection <Feature> features = featureLayer.QueryTools.GetFeaturesContaining(point, ReturningColumnsType.NoColumns); featureLayer.Close(); if (features.Count != 0) { highlightLayer.Open(); highlightLayer.InternalFeatures.Clear(); highlightLayer.InternalFeatures.Add(features[0]); highlightLayer.Close(); } else { highlightLayer.Open(); highlightLayer.InternalFeatures.Clear(); highlightLayer.Close(); } highlightOverlay.Refresh(); }
private void WpfMap_Loaded(object sender, RoutedEventArgs e) { wpfMap1.MapUnit = GeographyUnit.Meter; // If want to know more srids, please refer Projections.rtf in Documentation folder. ManagedProj4Projection proj4Projection = new ManagedProj4Projection(); proj4Projection.InternalProjectionParametersString = ManagedProj4Projection.GetEpsgParametersString(4326); proj4Projection.ExternalProjectionParametersString = ManagedProj4Projection.GetEpsgParametersString(2163); ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(@"..\..\SampleData\Data\Countries02.shp"); worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1; worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; worldLayer.FeatureSource.Projection = proj4Projection; worldLayer.Open(); wpfMap1.CurrentExtent = worldLayer.GetBoundingBox(); worldLayer.Close(); LayerOverlay staticOverlay = new LayerOverlay(); staticOverlay.TileType = TileType.SingleTile; staticOverlay.Layers.Add(new BackgroundLayer(new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean))); staticOverlay.Layers.Add("WorldLayer", worldLayer); wpfMap1.Overlays.Add(staticOverlay); wpfMap1.Refresh(); }
/// <summary> /// Set up the map with the ThinkGeo Cloud Maps overlay and a feature layer containing Frisco housing units data /// </summary> protected override async void OnAppearing() { base.OnAppearing(); // Create the background world maps using vector tiles requested from the ThinkGeo Cloud Service. ThinkGeoCloudVectorMapsOverlay thinkGeoCloudVectorMapsOverlay = new ThinkGeoCloudVectorMapsOverlay("9ap16imkD_V7fsvDW9I8r8ULxgAB50BX_BnafMEBcKg~", "vtVao9zAcOj00UlGcK7U-efLANfeJKzlPuDB9nw7Bp4K4UxU_PdRDg~~", ThinkGeoCloudVectorMapsMapType.Light); thinkGeoCloudVectorMapsOverlay.VectorTileCache = new FileVectorTileCache(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "cache"), "CloudMapsVector"); mapView.Overlays.Add(thinkGeoCloudVectorMapsOverlay); // Set the map's unit of measurement to meters (Spherical Mercator) mapView.MapUnit = GeographyUnit.Meter; // Create a new ShapeFileFeatureLayer using a shapefile containing Frisco Census data ShapeFileFeatureLayer housingUnitsLayer = new ShapeFileFeatureLayer(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Data/Shapefile/Frisco 2010 Census Housing Units.shp")); housingUnitsLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Create a new ProjectionConverter to convert between Texas North Central (2276) and Spherical Mercator (3857) ProjectionConverter projectionConverter = new ProjectionConverter(2276, 3857); housingUnitsLayer.FeatureSource.ProjectionConverter = projectionConverter; // Create a new overlay and add the census feature layer LayerOverlay housingUnitsOverlay = new LayerOverlay(); housingUnitsOverlay.Layers.Add("Frisco Housing Units", housingUnitsLayer); mapView.Overlays.Add("Frisco Housing Units Overlay", housingUnitsOverlay); // Create a legend adornment to display classbreaks LegendAdornmentLayer legend = new LegendAdornmentLayer(); // Set up the legend adornment legend.Title = new LegendItem() { TextStyle = new TextStyle("Housing Unit Counts", new GeoFont("Verdana", 10, DrawingFontStyles.Bold), GeoBrushes.Black) }; legend.Location = AdornmentLocation.LowerRight; mapView.AdornmentOverlay.Layers.Add("Legend", legend); // Get the exttent of the features from the housing units shapefile, and set the map extent. housingUnitsLayer.Open(); mapView.CurrentExtent = housingUnitsLayer.GetBoundingBox(); housingUnitsLayer.Close(); cboColorType.SelectedItem = "Hue"; cboDefaultColor.SelectedItem = "Blue"; // Initialize the ColorCloudClient using our ThinkGeo Cloud credentials colorCloudClient = new ColorCloudClient("FSDgWMuqGhZCmZnbnxh-Yl1HOaDQcQ6mMaZZ1VkQNYw~", "IoOZkBJie0K9pz10jTRmrUclX6UYssZBeed401oAfbxb9ufF1WVUvg~~"); // Set the initial color scheme for the housing units layer Collection <GeoColor> colors = await GetColorsFromCloud(); // If colors were successfully generated, update the map if (colors.Count > 0) { UpdateHousingUnitsLayerColors(colors); } }
private void BrowseCustomDataClick(object sender, RoutedEventArgs e) { CustomDataCategoryViewModel customDataCategoryViewModel = ((FrameworkElement)sender).DataContext as CustomDataCategoryViewModel; OpenFileDialog openFileDialog = new OpenFileDialog(); openFileDialog.Filter = "Shape File(*.shp)|*.shp"; if (openFileDialog.ShowDialog().GetValueOrDefault()) { ShapeFileFeatureLayer shapeFileFeatureLayer = new ShapeFileFeatureLayer(openFileDialog.FileName); shapeFileFeatureLayer.Open(); if (shapeFileFeatureLayer.GetShapeFileType() == ShapeFileType.Polygon) { customDataCategoryViewModel.CustomDataFilePathName = openFileDialog.FileName; customDataCategoryViewModel.Columns.Clear(); foreach (DbfColumn dbfColumn in shapeFileFeatureLayer.FeatureSource.GetColumns().OfType<DbfColumn>()) { if (dbfColumn.ColumnType == DbfColumnType.Float || dbfColumn.ColumnType == DbfColumnType.Numeric || dbfColumn.ColumnType == DbfColumnType.DoubleInBinary || dbfColumn.ColumnType == DbfColumnType.IntegerInBinary) { customDataCategoryViewModel.Columns.Add(new ColumnViewModel(dbfColumn.ColumnName, dbfColumn.ColumnName) { LegendTitle = dbfColumn.ColumnName, Parent = customDataCategoryViewModel }); } } customDataCategoryViewModel.CanUsePieView = customDataCategoryViewModel.Columns.Count >= 2; mapModel.CustomDataFeatureLayer = shapeFileFeatureLayer; } else { MessageBox.Show("The shapefile must be polygon type, please try another one.", "Warning"); } } }
private void MapView_Loaded(object sender, RoutedEventArgs e) { Map1.MapUnit = GeographyUnit.Meter; Map1.ZoomLevelSet = new ThinkGeoCloudMapsZoomLevelSet(); // Create background world map with vector tile requested from ThinkGeo Cloud Service. ThinkGeoCloudVectorMapsOverlay thinkGeoCloudVectorMapsOverlay = new ThinkGeoCloudVectorMapsOverlay(SampleHelper.ThinkGeoCloudId, SampleHelper.ThinkGeoCloudSecret, ThinkGeoCloudVectorMapsMapType.Light); Map1.Overlays.Add(thinkGeoCloudVectorMapsOverlay); PopupOverlay popupOverlay = new PopupOverlay(); Map1.Overlays.Add(popupOverlay); ShapeFileFeatureLayer majorCitiesShapeLayer = new ShapeFileFeatureLayer(SampleHelper.Get("MajorCities_3857.shp")); majorCitiesShapeLayer.Open(); Collection <Feature> features = majorCitiesShapeLayer.QueryTools.GetAllFeatures(ReturningColumnsType.AllColumns); foreach (Feature feature in features) { Popup popup = new Popup(feature.GetShape().GetCenterPoint()); popup.Content = feature.ColumnValues["AREANAME"]; popupOverlay.Popups.Add(popup); } majorCitiesShapeLayer.Close(); Map1.CurrentExtent = popupOverlay.GetBoundingBox(); Map1.Refresh(); }
private void WpfMap_Loaded(object sender, RoutedEventArgs e) { wpfMap1.MapUnit = GeographyUnit.DecimalDegree; wpfMap1.CurrentExtent = new RectangleShape(-165.946875, 86.4359375, -35.86875, -6.3765625); WorldMapKitWmsWpfOverlay worldMapKitOverlay = new WorldMapKitWmsWpfOverlay(); wpfMap1.Overlays.Add(worldMapKitOverlay); ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(@"..\..\SampleData\Data\USStates.shp"); worldLayer.Open(); Collection<Feature> allFeatures = worldLayer.QueryTools.GetAllFeatures(ReturningColumnsType.AllColumns); worldLayer.Close(); // Setup the inMemoryLayer. InMemoryFeatureLayer inMemoryLayer = new InMemoryFeatureLayer(); inMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = new AreaStyle(new GeoSolidBrush(GeoColor.FromArgb(100, GeoColor.SimpleColors.Green))); inMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.OutlinePen.Color = GeoColor.SimpleColors.Green; inMemoryLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; foreach (Feature feature in allFeatures) { inMemoryLayer.InternalFeatures.Add(feature); } LayerOverlay inMemoryOverlay = new LayerOverlay(); inMemoryOverlay.TileType = TileType.SingleTile; inMemoryOverlay.Layers.Add("InMemoryFeatureLayer", inMemoryLayer); wpfMap1.Overlays.Add("InMemoryOverlay", inMemoryOverlay); wpfMap1.Refresh(); }
private void Form1_Load(object sender, EventArgs e) { winformsMap1.MapUnit = GeographyUnit.DecimalDegree; winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.StandardColors.LightSteelBlue); ShapeFileFeatureLayer austinstreetsLayer = new ShapeFileFeatureLayer(@"..\..\App_Data\Austinstreets.shp"); austinstreetsLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(GetRoadStyle()); austinstreetsLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay austinstreetsOverlay = new LayerOverlay(); austinstreetsOverlay.Layers.Add("AustinstreetsLayer", austinstreetsLayer); winformsMap1.Overlays.Add("AustinstreetsOverlay", austinstreetsOverlay); austinstreetsLayer.Open(); winformsMap1.CurrentExtent = austinstreetsLayer.GetBoundingBox(); austinstreetsLayer.Close(); InMemoryFeatureLayer routingLayer = new InMemoryFeatureLayer(); routingLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle.OuterPen.Color = GeoColor.StandardColors.Red; routingLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay routingOverlay = new LayerOverlay(); routingOverlay.Layers.Add("RoutingLayer", routingLayer); winformsMap1.Overlays.Add("RoutingOverlay", routingOverlay); winformsMap1.Refresh(); }
/// <summary> /// Scales the first feature in the cityLimits layer and displays the result on the map. /// </summary> private void ScaleShape_OnClick(object sender, EventArgs e) { LayerOverlay layerOverlay = (LayerOverlay)mapView.Overlays["layerOverlay"]; ShapeFileFeatureLayer cityLimits = (ShapeFileFeatureLayer)layerOverlay.Layers["cityLimits"]; InMemoryFeatureLayer scaledLayer = (InMemoryFeatureLayer)layerOverlay.Layers["scaledLayer"]; // Query the cityLimits layer to get all the features cityLimits.Open(); var features = cityLimits.QueryTools.GetAllFeatures(ReturningColumnsType.NoColumns); cityLimits.Close(); // Scale the first feature by the scaleFactor TextBox on the UI var scale = AreaBaseShape.ScaleTo(features[0].GetShape(), Convert.ToSingle(scaleFactor.Text)); // Add the scaled shape into scaledLayer to display the result. // If this were to be a permanent change to the cityLimits FeatureSource, you would modify the // underlying data using BeginTransaction and CommitTransaction instead. scaledLayer.InternalFeatures.Clear(); scaledLayer.InternalFeatures.Add(new Feature(scale)); // Redraw the layerOverlay to see the scaled feature on the map layerOverlay.Refresh(); }
private void WpfMap_Loaded(object sender, RoutedEventArgs e) { wpfMap1.MapUnit = GeographyUnit.DecimalDegree; wpfMap1.CurrentExtent = new RectangleShape(-135.224054810107, 62.2893787272533, -58.8379651537011, 7.78687151295263); WorldMapKitWmsWpfOverlay worldMapKitOverlay = new WorldMapKitWmsWpfOverlay(); wpfMap1.Overlays.Add(worldMapKitOverlay); ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(@"..\..\SampleData\Data\Countries02.shp"); worldLayer.Open(); Feature feature = worldLayer.QueryTools.GetFeatureById("137", new string[0]); worldLayer.Close(); InMemoryFeatureLayer inMemoryLayer = new InMemoryFeatureLayer(); inMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.FillSolidBrush.Color = GeoColor.FromArgb(100, GeoColor.SimpleColors.Green); inMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.OutlinePen.Color = GeoColor.GeographicColors.DeepOcean; inMemoryLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; inMemoryLayer.InternalFeatures.Add("POLYGON", feature); InMemoryFeatureLayer bufferLayer = new InMemoryFeatureLayer(); bufferLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.FillSolidBrush.Color = GeoColor.FromArgb(100, GeoColor.SimpleColors.Green); bufferLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay inmemoryOverlay = new LayerOverlay(); inmemoryOverlay.TransitionEffect = TransitionEffect.None; inmemoryOverlay.Layers.Add("InMemoryFeatureLayer", inMemoryLayer); wpfMap1.Overlays.Add("InmemoryOverlay", inmemoryOverlay); LayerOverlay bufferOverlay = new LayerOverlay(); bufferOverlay.TransitionEffect = TransitionEffect.None; bufferOverlay.Layers.Add("BufferLayer", bufferLayer); wpfMap1.Overlays.Add("BufferOverlay", bufferOverlay); wpfMap1.Refresh(); }
private void MapView_Loaded(object sender, RoutedEventArgs e) { mapView.MapUnit = GeographyUnit.Meter; mapView.ZoomLevelSet = new ThinkGeoCloudMapsZoomLevelSet(); mapView.CurrentExtent = new RectangleShape(-18473122, 20037508, -3992891, -711306); // Create background world map with vector tile requested from ThinkGeo Cloud Service. ThinkGeoCloudVectorMapsOverlay thinkGeoCloudVectorMapsOverlay = new ThinkGeoCloudVectorMapsOverlay(SampleHelper.ThinkGeoCloudId, SampleHelper.ThinkGeoCloudSecret, ThinkGeoCloudVectorMapsMapType.Light); mapView.Overlays.Add(thinkGeoCloudVectorMapsOverlay); InMemoryFeatureLayer inMemoryLayer = new InMemoryFeatureLayer(); inMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.FillBrush = new GeoSolidBrush(GeoColor.FromArgb(100, GeoColors.Green)); inMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.OutlinePen.Color = GeoColors.Green; inMemoryLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(SampleHelper.Get("Countries02_3857.shp")); worldLayer.Open(); Feature feature = worldLayer.QueryTools.GetFeatureById("135", new string[0]); worldLayer.Close(); inMemoryLayer.InternalFeatures.Add("135", feature); LayerOverlay inMemoryOverlay = new LayerOverlay(); inMemoryOverlay.TileType = TileType.SingleTile; inMemoryOverlay.Layers.Add("InMemoryFeatureLayer", inMemoryLayer); mapView.Overlays.Add("InMemoryOverlay", inMemoryOverlay); mapView.Refresh(); }
/// <summary> /// Use the ProjectionConverter class to reproject features in a ShapeFileFeatureLayer /// </summary> private void ReprojectFeaturesFromShapefile() { // Create a feature layer to hold the Frisco subdivisions data ShapeFileFeatureLayer subdivisionsLayer = new ShapeFileFeatureLayer(@"../../../Data/Shapefile/Subdivisions.shp"); // Create a new ProjectionConverter to convert between Texas North Central (2276) and Spherical Mercator (3857) ProjectionConverter projectionConverter = new ProjectionConverter(2276, 3857); subdivisionsLayer.FeatureSource.ProjectionConverter = projectionConverter; // Add a style to use to draw the Frisco subdivions polygons subdivisionsLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyle.CreateSimpleAreaStyle(GeoColor.FromArgb(50, GeoColors.MediumPurple), GeoColors.MediumPurple, 2); // Apply the styles across all zoom levels subdivisionsLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Get the overlay we prepared from the MapView, and add the subdivisions ShapeFileFeatureLayer to it LayerOverlay subdivisionsOverlay = (LayerOverlay)mapView.Overlays["Frisco Subdivisions Overlay"]; subdivisionsOverlay.Layers.Clear(); subdivisionsOverlay.Layers.Add("Frisco Subdivisions", subdivisionsLayer); // Set the map to the extent of the subdivisions features and refresh the map subdivisionsLayer.Open(); mapView.CurrentExtent = subdivisionsLayer.GetBoundingBox(); subdivisionsLayer.Close(); mapView.Refresh(); }
private void WpfMap_Loaded(object sender, RoutedEventArgs e) { wpfMap1.MapUnit = GeographyUnit.DecimalDegree; WorldMapKitWmsWpfOverlay worldMapKitOverlay = new WorldMapKitWmsWpfOverlay(); wpfMap1.Overlays.Add(worldMapKitOverlay); InMemoryFeatureLayer inMemoryLayer = new InMemoryFeatureLayer(); inMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.FillSolidBrush.Color = GeoColor.FromArgb(100, GeoColor.SimpleColors.Green); inMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.OutlinePen.Color = GeoColor.SimpleColors.Green; inMemoryLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(@"..\..\SampleData\Data\Countries02.shp"); worldLayer.Open(); Feature feature = worldLayer.QueryTools.GetFeatureById("135", new string[0]); worldLayer.Close(); inMemoryLayer.InternalFeatures.Add("135", feature); LayerOverlay inMemoryOverlay = new LayerOverlay(); inMemoryOverlay.TileType = TileType.SingleTile; inMemoryOverlay.Layers.Add("InMemoryFeatureLayer", inMemoryLayer); wpfMap1.Overlays.Add("InMemoryOverlay", inMemoryOverlay); wpfMap1.CurrentExtent = new RectangleShape(-165.946875, 86.4359375, -35.86875, -6.3765625); wpfMap1.Refresh(); }
private void Form1_Load(object sender, EventArgs e) { winformsMap1.MapUnit = GeographyUnit.DecimalDegree; WorldStreetsAndImageryOverlay worldOverlay = new WorldStreetsAndImageryOverlay(); winformsMap1.Overlays.Add(worldOverlay); LayerOverlay layerOverlay = new LayerOverlay(); var amapLayer = new AmapWalkingRoutePlanLayer(new Uri("http://restapi.amap.com/v3/direction/walking"), AppKey); layerOverlay.Layers.Add("AmapFeatureLayer", amapLayer); ShapeFileFeatureLayer shapeFileLayer = new ShapeFileFeatureLayer(@"..\..\AppData\states.shp"); shapeFileLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = WorldStreetsAreaStyles.Military(); shapeFileLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; layerOverlay.Layers.Add(shapeFileLayer); winformsMap1.Overlays.Add(layerOverlay); shapeFileLayer.Open(); //104.076233,30.623196&destination=104.097133,30.636324 winformsMap1.CurrentExtent = new RectangleShape(104.076233, 30.636324, 104.097133, 30.623196); winformsMap1.Dock = DockStyle.Fill; winformsMap1.Refresh(); }
private void shapeDifference_Click(object sender, EventArgs e) { LayerOverlay layerOverlay = (LayerOverlay)mapView.Overlays["layerOverlay"]; ShapeFileFeatureLayer cityLimits = (ShapeFileFeatureLayer)layerOverlay.Layers["cityLimits"]; InMemoryFeatureLayer westRegionLayer = (InMemoryFeatureLayer)layerOverlay.Layers["westRegionLayer"]; InMemoryFeatureLayer differenceLayer = (InMemoryFeatureLayer)layerOverlay.Layers["differenceLayer"]; // Query the cityLimits layer to get the first feature cityLimits.Open(); var feature = cityLimits.QueryTools.GetAllFeatures(ReturningColumnsType.NoColumns).First(); cityLimits.Close(); // Get the westRegion area var westRegion = westRegionLayer.InternalFeatures[0]; // Gets the difference of the feature from the westRegion area var difference = feature.GetDifference(westRegion); // Add the difference into an InMemoryFeatureLayer to display the result. differenceLayer.InternalFeatures.Clear(); differenceLayer.InternalFeatures.Add(difference); // Redraw the layerOverlay to see the difference feature on the map layerOverlay.Refresh(); }
private void TrackInteractiveOverlayOnTrackEnded(object sender, TrackEndedTrackInteractiveOverlayEventArgs args) { loadingView.StartAnimating(); Task.Factory.StartNew(() => { MultipolygonShape resultShape = PolygonShape.Union(iOSMap.TrackOverlay.TrackShapeLayer.InternalFeatures); ShapeFileFeatureLayer earthquakePointLayer = (ShapeFileFeatureLayer)Global.HighLightOverlay.Layers["EarthquakePointLayer"]; earthquakePointLayer.Open(); Collection <Feature> features = earthquakePointLayer.FeatureSource.GetFeaturesWithinDistanceOf(new Feature(resultShape), iOSMap.MapUnit, DistanceUnit.Meter, 0.0001, ReturningColumnsType.AllColumns); Global.QueriedFeatures.Clear(); foreach (Feature feature in features) { Global.QueriedFeatures.Add(feature); } Global.FilterSelectedEarthquakeFeatures(); InvokeOnMainThread(() => { Global.HighLightOverlay.Refresh(); loadingView.StopAnimating(); }); }); }
private static Collection <string> GetPoiSubTypes(LayerOverlay poiOverlay, string poiType) { Collection <string> poiSubTypes = new Collection <string>(); poiSubTypes.Add("All"); string columnName = InternalHelper.GetDbfColumnByPoiType(poiType); if (columnName.Equals("Hotels")) { poiSubTypes.Add("1 ~ 50"); poiSubTypes.Add("50 ~ 100"); poiSubTypes.Add("100 ~ 150"); poiSubTypes.Add("150 ~ 200"); poiSubTypes.Add("200 ~ 300"); poiSubTypes.Add("300 ~ 400"); poiSubTypes.Add("400 ~ 500"); poiSubTypes.Add(">= 500"); } else { ShapeFileFeatureLayer inMemoryFeatureLayer = (ShapeFileFeatureLayer)poiOverlay.Layers[poiType]; inMemoryFeatureLayer.Open(); IEnumerable <string> distinctColumnValues = inMemoryFeatureLayer.FeatureSource.GetDistinctColumnValues(columnName).Select(v => v.ColumnValue); foreach (string distinctColumnValue in distinctColumnValues) { poiSubTypes.Add(distinctColumnValue); } } return(poiSubTypes); }
/// <summary> /// Unions all the features in the dividedCityLimits layer and displays the results on the map /// </summary> private void UnionShapes_OnClick(object sender, EventArgs e) { LayerOverlay layerOverlay = (LayerOverlay)mapView.Overlays["layerOverlay"]; ShapeFileFeatureLayer dividedCityLimits = (ShapeFileFeatureLayer)layerOverlay.Layers["dividedCityLimits"]; InMemoryFeatureLayer unionLayer = (InMemoryFeatureLayer)layerOverlay.Layers["unionLayer"]; // Query the dividedCityLimits layer to get all the features dividedCityLimits.Open(); var features = dividedCityLimits.QueryTools.GetAllFeatures(ReturningColumnsType.NoColumns); dividedCityLimits.Close(); // Union all the features into a single Multipolygon Shape var union = AreaBaseShape.Union(features); // Add the union shape into unionLayer to display the result. // If this were to be a permanent change to the dividedCityLimits FeatureSource, you would modify the underlying data using BeginTransaction and CommitTransaction instead. unionLayer.InternalFeatures.Clear(); unionLayer.InternalFeatures.Add(new Feature(union)); // Hide the dividedCityLimits layer dividedCityLimits.IsVisible = false; // Redraw the layerOverlay to see the unioned features on the map layerOverlay.Refresh(); }
private void WpfMap_Loaded(object sender, RoutedEventArgs e) { wpfMap1.MapUnit = GeographyUnit.DecimalDegree; wpfMap1.CurrentExtent = new RectangleShape(-177.39584350585937, 83.113876342773437, -52.617362976074219, 14.550546646118164); ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(@"..\..\SampleData\Data\Countries02.shp"); worldLayer.Open(); Feature feature = worldLayer.QueryTools.GetFeatureById("135", new string[0]); areaBaseShape = (AreaBaseShape)feature.GetShape(); worldLayer.Close(); InMemoryFeatureLayer simplificationLayer = new InMemoryFeatureLayer(); simplificationLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; simplificationLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Country1; simplificationLayer.InternalFeatures.Add(feature); LayerOverlay simplificationOverlay = new LayerOverlay(); simplificationOverlay.TileType = TileType.SingleTile; simplificationOverlay.Layers.Add(new BackgroundLayer(new GeoSolidBrush(GeoColor.GeographicColors.ShallowOcean))); simplificationOverlay.Layers.Add("SimplificationLayer", simplificationLayer); wpfMap1.Overlays.Add("SimplificationOverlay", simplificationOverlay); cmbSimplificationType.SelectedIndex = 0; cmbTolerance.SelectedIndex = 0; wpfMap1.Refresh(); }
private void SplitShape_OnClick(object sender, EventArgs e) { LayerOverlay layerOverlay = (LayerOverlay)mapView.Overlays["layerOverlay"]; ShapeFileFeatureLayer cityLimits = (ShapeFileFeatureLayer)layerOverlay.Layers["cityLimits"]; InMemoryFeatureLayer splitLayer = (InMemoryFeatureLayer)layerOverlay.Layers["splitLayer"]; // Query the cityLimits layer to get all the features cityLimits.Open(); var feature = cityLimits.QueryTools.GetAllFeatures(ReturningColumnsType.NoColumns).First(); cityLimits.Close(); // Split the polygon using a line that crosses through it // TODO: We do not have an API for splitting a polygon using a line shape. This sample will be more involved than normal var split = feature; // Add the split shape into an InMemoryFeatureLayer to display the result. // If this were to be a permanent change to the cityLimits FeatureSource, you would modify the underlying data using BeginTransaction and CommitTransaction instead. splitLayer.InternalFeatures.Clear(); splitLayer.InternalFeatures.Add(split); // Redraw the layerOverlay to see the split features on the map layerOverlay.Refresh(); }
private void clipShape_Click(object sender, EventArgs e) { LayerOverlay layerOverlay = (LayerOverlay)mapView.Overlays["layerOverlay"]; ShapeFileFeatureLayer cityLimits = (ShapeFileFeatureLayer)layerOverlay.Layers["cityLimits"]; InMemoryFeatureLayer westRegionLayer = (InMemoryFeatureLayer)layerOverlay.Layers["westRegionLayer"]; InMemoryFeatureLayer clipLayer = (InMemoryFeatureLayer)layerOverlay.Layers["clipLayer"]; // Query the cityLimits layer to get the first feature cityLimits.Open(); var feature = cityLimits.QueryTools.GetAllFeatures(ReturningColumnsType.NoColumns).First(); cityLimits.Close(); // Get the westRegion area var westRegion = westRegionLayer.InternalFeatures[0]; // Clips the cityLimits feature down to the common area of the westRegion var clip = feature.GetIntersection(westRegion); // Add the clip into an InMemoryFeatureLayer to display the result. clipLayer.InternalFeatures.Clear(); clipLayer.InternalFeatures.Add(clip); // Redraw the layerOverlay to see the clip feature on the map layerOverlay.Refresh(); }
private void UpdateElementsRotation(double angle) { LayerOverlay layerOverlay = (LayerOverlay)Map1.Overlays["LayerOverlay"]; ShapeFileFeatureLayer worldLayer = (ShapeFileFeatureLayer)layerOverlay.Layers["SampleLayer"]; worldLayer.Open(); SimpleMarkerOverlay markerOverlay = (SimpleMarkerOverlay)Map1.Overlays["MarkerOverlay"]; foreach (var marker in markerOverlay.Markers) { marker.RenderTransform = new RotateTransform(-angle, marker.ActualWidth / 2, marker.ActualHeight); } PopupOverlay popupOverlay = (PopupOverlay)Map1.Overlays["PopupOverlay"]; foreach (var popup in popupOverlay.Popups) { popup.RenderTransform = new RotateTransform(-angle, popup.ActualWidth, popup.ActualHeight); } if (worldLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle != null) { worldLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.RotationAngle = angle; } }
protected override void OnCreate(Bundle bundle) { base.OnCreate(bundle); SetContentView(Resource.Layout.DisplayMapView); ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(SampleHelper.GetDataPath(@"SampleData/Countries02.shp")); worldLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(255, 233, 232, 214), GeoColor.FromArgb(255, 118, 138, 69)); worldLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; worldLayer.Open(); Feature feature = worldLayer.QueryTools.GetFeatureById("135", new string[0]); worldLayer.Close(); InMemoryFeatureLayer inMemoryLayer = new InMemoryFeatureLayer(); inMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.FillSolidBrush.Color = GeoColor.FromArgb(100, GeoColor.SimpleColors.Green); inMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle.OutlinePen.Color = GeoColor.SimpleColors.Green; inMemoryLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; inMemoryLayer.InternalFeatures.Add("135", feature); LayerOverlay inMemoryOverlay = new LayerOverlay(); inMemoryOverlay.TileType = TileType.SingleTile; inMemoryOverlay.Layers.Add("InMemoryFeatureLayer", inMemoryLayer); LayerOverlay layerOverlay = new LayerOverlay(); layerOverlay.Layers.Add("WorldLayer", worldLayer); androidMap = FindViewById <MapView>(Resource.Id.androidmap); androidMap.MapUnit = GeographyUnit.DecimalDegree; androidMap.CurrentExtent = new RectangleShape(-133.2515625, 89.2484375, 126.9046875, -88.290625); androidMap.Overlays.Add("WorldOverlay", layerOverlay); androidMap.Overlays.Add("InMemoryOverlay", inMemoryOverlay); Button scaleUpButton = new Button(this); scaleUpButton.Text = "ScaleUp"; scaleUpButton.Click += ScaleUpButtonClick; Button scaleDownButton = new Button(this); scaleDownButton.Text = "ScaleDown"; scaleDownButton.Click += ScaleDownButtonClick; LinearLayout linearLayout = new LinearLayout(this); linearLayout.Orientation = Orientation.Horizontal; linearLayout.AddView(scaleUpButton); linearLayout.AddView(scaleDownButton); SampleViewHelper.InitializeInstruction(this, FindViewById <RelativeLayout>(Resource.Id.MainLayout), GetType(), new Collection <View>() { linearLayout }); }
private void btnGetEnvelope_Click(object sender, RoutedEventArgs e) { ShapeFileFeatureLayer worldLayer = new ShapeFileFeatureLayer(@"..\..\SampleData\Data\Countries02.shp"); worldLayer.Open(); RectangleShape usBoundingBox = worldLayer.QueryTools.GetFeatureById("137", new string[0]).GetBoundingBox(); worldLayer.Close(); InMemoryFeatureLayer boundingBoxLayer = (InMemoryFeatureLayer)wpfMap1.FindFeatureLayer("BoundingBoxLayer"); if (!boundingBoxLayer.InternalFeatures.Contains("BoundingBox")) { boundingBoxLayer.InternalFeatures.Add("BoundingBox", new Feature(usBoundingBox.GetWellKnownBinary(), "BoundingBox")); } wpfMap1.Overlays["BoundingBoxOverlay"].Refresh(); }
private void WpfMap_Loaded(object sender, RoutedEventArgs e) { Map1.MapUnit = GeographyUnit.DecimalDegree; WorldMapKitWmsWpfOverlay worldOverlay = new WorldMapKitWmsWpfOverlay(); Map1.Overlays.Add(worldOverlay); PopupOverlay popupOverlay = new PopupOverlay(); Map1.Overlays.Add(popupOverlay); ShapeFileFeatureLayer majorCitiesShapeLayer = new ShapeFileFeatureLayer(@"..\..\SampleData\Data\MajorCities.shp"); majorCitiesShapeLayer.Open(); Collection<Feature> features = majorCitiesShapeLayer.QueryTools.GetAllFeatures(ReturningColumnsType.AllColumns); foreach (Feature feature in features) { Popup popup = new Popup(feature.GetShape().GetCenterPoint()); popup.Content = feature.ColumnValues["AREANAME"]; popupOverlay.Popups.Add(popup); } majorCitiesShapeLayer.Close(); Map1.CurrentExtent = popupOverlay.GetBoundingBox(); Map1.Refresh(); }
private static Popup CreatePopup() { ShapeFileFeatureLayer schoolsFeatureLayer = new ShapeFileFeatureLayer(@"..\..\App_Data\POIs\Schools.shp"); ManagedProj4Projection wgs84ToMercatorProjection = new ManagedProj4Projection(); wgs84ToMercatorProjection.InternalProjectionParametersString = Proj4Projection.GetDecimalDegreesParametersString(); wgs84ToMercatorProjection.ExternalProjectionParametersString = Proj4Projection.GetSphericalMercatorParametersString(); schoolsFeatureLayer.FeatureSource.Projection = wgs84ToMercatorProjection; wgs84ToMercatorProjection.Open(); schoolsFeatureLayer.Open(); Feature feature = schoolsFeatureLayer.FeatureSource.GetFeatureById("10", ReturningColumnsType.AllColumns); Popup popup = new Popup(new PointShape(feature.GetWellKnownText())); popup.Content = new PopupUserControl(feature); return popup; }