/// <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); }
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(); } } }
/// <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.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(); }
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(); }
/// <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; 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(); }
/// <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 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 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 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(); }
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.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); } }
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 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 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 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(); }
/// <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 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(); }
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 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(); }
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 RenderMap() { winformsMap1.MapUnit = GeographyUnit.DecimalDegree; winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#e6e5d1")); winformsMap1.CurrentExtent = new RectangleShape(-97.763384, 30.299707, -97.712382, 30.259309); ShapeFileFeatureLayer austinstreetsLayer = new ShapeFileFeatureLayer(@"..\..\SampleData\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); // The layer for rendering routing result InMemoryFeatureLayer routingLayer = new InMemoryFeatureLayer(); routingLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle.OuterPen = new GeoPen(GeoColor.FromArgb(100, GeoColor.StandardColors.Purple), 5); routingLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay routingOverlay = new LayerOverlay(); routingOverlay.Layers.Add("RoutingLayer", routingLayer); winformsMap1.Overlays.Add("RoutingOverlay", routingOverlay); // The layer for rendering start and end points InMemoryFeatureLayer stopLayer = new InMemoryFeatureLayer(); stopLayer.Open(); stopLayer.Columns.Add(new FeatureSourceColumn("Order")); stopLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = new PointStyle(PointSymbolType.Square, new GeoSolidBrush(GeoColor.SimpleColors.LightGreen), new GeoPen(GeoColor.SimpleColors.Black), 12); stopLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.Urban1("Order"); stopLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.XOffsetInPixel = -4; stopLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay stopOverlay = new LayerOverlay(); stopOverlay.Layers.Add("StopLayer", stopLayer); winformsMap1.Overlays.Add("StopOverlay", stopOverlay); // Add start and end points to the layer RoutingSource routingSource = new RtgRoutingSource(@"..\..\SampleData\Austinstreets.rtg"); routingSource.Open(); austinstreetsLayer.Open(); Feature startRoad = austinstreetsLayer.FeatureSource.GetFeatureById(txtStartId.Text, ReturningColumnsType.NoColumns); Feature startPoint = new Feature(startRoad.GetShape().GetCenterPoint().GetWellKnownBinary()); startPoint.ColumnValues["Order"] = "1"; stopLayer.InternalFeatures.Add(startPoint); Feature endRoad = austinstreetsLayer.FeatureSource.GetFeatureById(txtEndId.Text, ReturningColumnsType.NoColumns); Feature endPoint = new Feature(endRoad.GetShape().GetCenterPoint().GetWellKnownBinary()); endPoint.ColumnValues["Order"] = "2"; stopLayer.InternalFeatures.Add(endPoint); routingSource.Close(); austinstreetsLayer.Close(); winformsMap1.Refresh(); }
/// <summary> /// Setup the map with the ThinkGeo Cloud Maps overlay. Also, add the feature layer to the map /// </summary> protected override void OnAppearing() { base.OnAppearing(); // It is important to set the map unit first to either feet, meters or decimal degrees. mapView.MapUnit = GeographyUnit.Meter; // 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); // Create a new overlay that will hold our new layer and add it to the map. LayerOverlay inMemoryOverlay = new LayerOverlay(); mapView.Overlays.Add(inMemoryOverlay); // Create a new layer that we will pull features from to populate the in memory layer. ShapeFileFeatureLayer shapeFileLayer = new ShapeFileFeatureLayer(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Data/Shapefile/Frisco_Mosquitos.shp")); shapeFileLayer.FeatureSource.ProjectionConverter = new ProjectionConverter(2276, 3857); shapeFileLayer.Open(); // Get all the features from the above layer. Collection <Feature> features = shapeFileLayer.FeatureSource.GetAllFeatures(ReturningColumnsType.AllColumns); shapeFileLayer.Close(); // Create the in memory layer and add it to the map InMemoryFeatureLayer inMemoryFeatureLayer = new InMemoryFeatureLayer(); inMemoryOverlay.Layers.Add("Frisco Mosquitos", inMemoryFeatureLayer); // Loop through all the features in the first layer and add them to the in memeory layer. We use a shortcut called internal // features that is supported in the in memory layer instead of going through the edit tools foreach (Feature feature in features) { inMemoryFeatureLayer.InternalFeatures.Add(feature); } // Create a text style for the label and give it a mask for use below. TextStyle textStyle = new TextStyle("Trap: [TrapID]", new GeoFont("ariel", 14), GeoBrushes.Black); textStyle.Mask = new AreaStyle(GeoPens.Black, GeoBrushes.White); textStyle.MaskMargin = new DrawingMargin(2, 2, 2, 2); textStyle.YOffsetInPixel = -10; // Create an point style and add the text style from above on zoom level 1 and then apply it to all zoom levels up to 20. inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = new PointStyle(PointSymbolType.Circle, 12, GeoBrushes.Red, GeoPens.White); inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = textStyle; inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Open the layer and set the map view current extent to the bounding box of the layer. inMemoryFeatureLayer.Open(); mapView.CurrentExtent = inMemoryFeatureLayer.GetBoundingBox(); //Refresh the map. mapView.Refresh(); }
private void InitializeMap(Map map) { map.MapUnit = GeographyUnit.DecimalDegree; map.MapTools.Logo.Enabled = true; map.MapBackground = new GeoSolidBrush(GeoColor.FromHtml("#E5E3DF")); map.CurrentExtent = new RectangleShape(-128.17864375, 56.9286546875, -69.11614375, 20.1903734375); // base map layers WorldStreetsAndImageryOverlay worldMapKitOverlay = new WorldStreetsAndImageryOverlay(); map.CustomOverlays.Add(worldMapKitOverlay); // us states layer ShapeFileFeatureLayer statesLayer = new ShapeFileFeatureLayer(Server.MapPath(ConfigurationManager.AppSettings["UsShapefilePath"])); ThematicDemographicStyleBuilder selectedStyle = new ThematicDemographicStyleBuilder(new Collection <string>() { "Population" }); statesLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(selectedStyle.GetStyle(statesLayer.FeatureSource)); statesLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; map.DynamicOverlay.Layers.Add("usStatesLayer", statesLayer); // highlight layers map.HighlightOverlay.HighlightStyle = new FeatureOverlayStyle(GeoColor.FromArgb(150, GeoColor.FromHtml("#449FBC")), GeoColor.FromHtml("#014576"), 1); map.HighlightOverlay.Style = new FeatureOverlayStyle(GeoColor.SimpleColors.Transparent, GeoColor.SimpleColors.Transparent, 0); statesLayer.Open(); foreach (Feature feature in statesLayer.FeatureSource.GetAllFeatures(ReturningColumnsType.NoColumns)) { map.HighlightOverlay.Features.Add(feature.Id, feature); } statesLayer.Close(); // Add hover-popup CloudPopup featureinfoPopup = new CloudPopup("featureInfoPopup", new PointShape(-98.64739375, 38.5595140625), "State Info"); // make the popup out of map view temporarily featureinfoPopup.AutoSize = true; map.Popups.Add(featureinfoPopup); // Add Legend adorment overlay LegendAdornmentLayer legendAdornmentLayer = new LegendAdornmentLayer(); legendAdornmentLayer.Location = AdornmentLocation.LowerLeft; legendAdornmentLayer.XOffsetInPixel = 10; legendAdornmentLayer.Title = new LegendItem(); legendAdornmentLayer.Title.ImageJustificationMode = LegendImageJustificationMode.JustifyImageRight; legendAdornmentLayer.Title.TopPadding = 10; legendAdornmentLayer.Title.BottomPadding = 10; legendAdornmentLayer.Title.TextStyle = new TextStyle("Population", new GeoFont("Segoe UI", 12), new GeoSolidBrush(GeoColor.SimpleColors.Black)); map.AdornmentOverlay.Layers.Add(legendAdornmentLayer); ThematicDemographicStyleBuilder initDemographicStyle = new ThematicDemographicStyleBuilder(new Collection <string>() { "Population" }); UpdateLegend(initDemographicStyle, map); }
public void SpatialQuery(Map map, GeoCollection <object> args) { LayerOverlay staticOverlay = (LayerOverlay)map.CustomOverlays["StaticOverlay"]; ShapeFileFeatureLayer worldLayer = (ShapeFileFeatureLayer)staticOverlay.Layers["WorldLayer"]; InMemoryFeatureLayer rectangleLayer = (InMemoryFeatureLayer)staticOverlay.Layers["RectangleLayer"]; InMemoryFeatureLayer spatialQueryResultLayer = (InMemoryFeatureLayer)staticOverlay.Layers["SpatialQueryResultLayer"]; Feature rectangleFeature = rectangleLayer.InternalFeatures["Rectangle"]; Collection <Feature> spatialQueryResults; string spatialQueryType = args[0].ToString(); worldLayer.Open(); switch (spatialQueryType) { case "Within": spatialQueryResults = worldLayer.QueryTools.GetFeaturesWithin(rectangleFeature, new string[0]); break; case "Containing": spatialQueryResults = worldLayer.QueryTools.GetFeaturesContaining(rectangleFeature, new string[0]); break; case "Disjointed": spatialQueryResults = worldLayer.QueryTools.GetFeaturesDisjointed(rectangleFeature, new string[0]); break; case "Intersecting": spatialQueryResults = worldLayer.QueryTools.GetFeaturesIntersecting(rectangleFeature, new string[0]); break; case "Overlapping": spatialQueryResults = worldLayer.QueryTools.GetFeaturesOverlapping(rectangleFeature, new string[0]); break; case "TopologicalEqual": spatialQueryResults = worldLayer.QueryTools.GetFeaturesTopologicalEqual(rectangleFeature, new string[0]); break; case "Touching": spatialQueryResults = worldLayer.QueryTools.GetFeaturesTouching(rectangleFeature, new string[0]); break; default: spatialQueryResults = worldLayer.QueryTools.GetFeaturesWithin(rectangleFeature, new string[0]); break; } worldLayer.Close(); spatialQueryResultLayer.InternalFeatures.Clear(); spatialQueryResultLayer.Open(); foreach (Feature feature in spatialQueryResults) { spatialQueryResultLayer.InternalFeatures.Add(feature.Id, feature); } spatialQueryResultLayer.Close(); staticOverlay.Redraw(); }
private void Form_Load(object sender, EventArgs e) { // It is important to set the map unit first to either feet, meters or decimal degrees. mapView.MapUnit = GeographyUnit.Meter; // Create the background world maps using vector tiles requested from the ThinkGeo Cloud Service. ThinkGeoCloudVectorMapsOverlay thinkGeoCloudVectorMapsOverlay = new ThinkGeoCloudVectorMapsOverlay("itZGOI8oafZwmtxP-XGiMvfWJPPc-dX35DmESmLlQIU~", "bcaCzPpmOG6le2pUz5EAaEKYI-KSMny_WxEAe7gMNQgGeN9sqL12OA~~", ThinkGeoCloudVectorMapsMapType.Light); mapView.Overlays.Add(thinkGeoCloudVectorMapsOverlay); // Create a new overlay that will hold our new layer and add it to the map. LayerOverlay inMemoryOverlay = new LayerOverlay(); mapView.Overlays.Add(inMemoryOverlay); // Create a new layer that we will pull features from to populate the in memory layer. ShapeFileFeatureLayer shapeFileLayer = new ShapeFileFeatureLayer(@"../../../Data/Shapefile/Frisco_Mosquitos.shp"); shapeFileLayer.FeatureSource.ProjectionConverter = new ProjectionConverter(2276, 3857); shapeFileLayer.Open(); // Get all the features from the above layer. Collection <Feature> features = shapeFileLayer.FeatureSource.GetAllFeatures(ReturningColumnsType.AllColumns); shapeFileLayer.Close(); // Create the in memory layer and add it to the map InMemoryFeatureLayer inMemoryFeatureLayer = new InMemoryFeatureLayer(); inMemoryOverlay.Layers.Add("Frisco Mosquitos", inMemoryFeatureLayer); // Loop through all the features in the first layer and add them to the in memeory layer. We use a shortcut called internal // features that is supported in the in memory layer instead of going through the edit tools foreach (Feature feature in features) { inMemoryFeatureLayer.InternalFeatures.Add(feature); } // Create a text style for the label and give it a mask for use below. TextStyle textStyle = new TextStyle("Trap: [TrapID]", new GeoFont("ariel", 14), GeoBrushes.Black); textStyle.Mask = new AreaStyle(GeoPens.Black, GeoBrushes.White); textStyle.MaskMargin = new DrawingMargin(2, 2, 2, 2); textStyle.YOffsetInPixel = -10; // Create an point style and add the text style from above on zoom level 1 and then apply it to all zoom levels up to 20. inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = new PointStyle(PointSymbolType.Circle, 12, GeoBrushes.Red, GeoPens.White); inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = textStyle; inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Open the layer and set the map view current extent to the bounding box of the layer. inMemoryFeatureLayer.Open(); mapView.CurrentExtent = inMemoryFeatureLayer.GetBoundingBox(); //Refresh the map. mapView.Refresh(); }
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(); }