private Map InitializeMap() { Map Map1 = new Map("Map1"); Map1.MapUnit = GeographyUnit.Meter; Map1.ZoomLevelSet = new ThinkGeoCloudMapsZoomLevelSet(); Map1.Width = new System.Web.UI.WebControls.Unit(100, System.Web.UI.WebControls.UnitType.Percentage); Map1.Height = new System.Web.UI.WebControls.Unit(100, System.Web.UI.WebControls.UnitType.Percentage); Map1.CurrentExtent = new RectangleShape(-10785241.6495495, 3916508.33762434, -10778744.5183967, 3912187.74540771); Map1.MapTools.MiniMap.Enabled = true; Map1.MapTools.OverlaySwitcher.Enabled = true; Map1.EditOverlay.EditSettings.IsResizable = false; // Please input your ThinkGeo Cloud API Key to enable the background map. ThinkGeoCloudRasterMapsOverlay ThinkGeoCloudMapsLight = new ThinkGeoCloudRasterMapsOverlay("ThinkGeo Cloud API Key") { Name = "ThinkGeo Cloud Maps Light", MapType = ThinkGeoCloudRasterMapsMapType.Light }; Map1.CustomOverlays.Add(ThinkGeoCloudMapsLight); ThinkGeoCloudRasterMapsOverlay ThinkGeoCloudMapsAerial = new ThinkGeoCloudRasterMapsOverlay("ThinkGeo Cloud API Key") { Name = "ThinkGeo Cloud Maps Aerial", MapType = ThinkGeoCloudRasterMapsMapType.Aerial }; Map1.CustomOverlays.Add(ThinkGeoCloudMapsAerial); ThinkGeoCloudRasterMapsOverlay ThinkGeoCloudMapsHybrid = new ThinkGeoCloudRasterMapsOverlay("ThinkGeo Cloud API Key") { Name = "ThinkGeo Cloud Maps Hybrid", MapType = ThinkGeoCloudRasterMapsMapType.Hybrid }; Map1.CustomOverlays.Add(ThinkGeoCloudMapsHybrid); OpenStreetMapOverlay openStreetMapOverlay = new OpenStreetMapOverlay("Open Street Map"); Map1.CustomOverlays.Add(openStreetMapOverlay); // Add spatial fences AddSpatialFenceOverlay(Map1); // Add vehicles. AddVehicleMarkerOverlay(Map1); // Add vehicles position history. AddVehicleHistoryMarkerOverlay(Map1); // Add scale bar ScaleBarAdornmentLayer scaleBarAdormentLayer = new ScaleBarAdornmentLayer(); scaleBarAdormentLayer.XOffsetInPixel = 10; scaleBarAdormentLayer.UnitFamily = UnitSystem.Metric; //Map1.AdornmentOverlay.Layers.Add(scaleBarAdormentLayer); return(Map1); }
public AdornmentLayer ToActualAdornmentLayer() { if (ScaleType == ScaleType.ScaleBar) { if (scaleBar == null) { scaleBar = new ScaleBarAdornmentLayer(); } SetCommonProperties(scaleBar); SetSpecialProperties(scaleBar); scaleBar.UnitFamily = selectedScaleBarUnitSystem; return(scaleBar); } else { if (scaleLine == null) { scaleLine = new ScaleLineAdornmentLayer(); } SetCommonProperties(scaleLine); scaleLine.UnitSystem = selectedScaleLineUnitSystem; return(scaleLine); } }
private bool ChangeScaleBarUnit(Map Map1, UnitSystem unitSystem) { ScaleBarAdornmentLayer scaleBarAdormentLayer = Map1.AdornmentOverlay.Layers[0] as ScaleBarAdornmentLayer; scaleBarAdormentLayer.UnitFamily = unitSystem; return(true); }
public void UpdateUnitSystem(UnitSystem selectedUnitSystem) { if (mapControl.AdornmentOverlay.Layers.Contains("ScaleBar")) { ScaleBarAdornmentLayer scaleBarLayer = (ScaleBarAdornmentLayer)mapControl.AdornmentOverlay.Layers["ScaleBar"]; scaleBarLayer.UnitFamily = selectedUnitSystem; mapControl.AdornmentOverlay.Refresh(); } }
private Map InitializeMap() { Map Map1 = new Map("Map1"); Map1.MapUnit = GeographyUnit.Meter; Map1.Width = new System.Web.UI.WebControls.Unit(100, System.Web.UI.WebControls.UnitType.Percentage); Map1.Height = new System.Web.UI.WebControls.Unit(100, System.Web.UI.WebControls.UnitType.Percentage); Map1.CurrentExtent = new RectangleShape(-10785241.6495495, 3916508.33762434, -10778744.5183967, 3912187.74540771); Map1.MapTools.MiniMap.Enabled = true; Map1.MapTools.OverlaySwitcher.Enabled = true; Map1.EditOverlay.EditSettings.IsResizable = false; // base map layer WorldStreetsAndImageryOverlay worldMapKitRoadOverlay = new WorldStreetsAndImageryOverlay("World Map Kit Road"); worldMapKitRoadOverlay.Projection = WorldStreetsAndImageryProjection.SphericalMercator; worldMapKitRoadOverlay.MapType = WorldStreetsAndImageryMapType.Road; Map1.CustomOverlays.Add(worldMapKitRoadOverlay); WorldStreetsAndImageryOverlay worldMapKitAerialOverlay = new WorldStreetsAndImageryOverlay("World Map Kit Aerial"); worldMapKitAerialOverlay.Projection = WorldStreetsAndImageryProjection.SphericalMercator; worldMapKitAerialOverlay.MapType = WorldStreetsAndImageryMapType.Aerial; Map1.CustomOverlays.Add(worldMapKitAerialOverlay); WorldStreetsAndImageryOverlay worldMapKitAerialWithLabelsOverlay = new WorldStreetsAndImageryOverlay("World Map Kit Aerial With Labels"); worldMapKitAerialWithLabelsOverlay.Projection = WorldStreetsAndImageryProjection.SphericalMercator; worldMapKitAerialWithLabelsOverlay.MapType = WorldStreetsAndImageryMapType.AerialWithLabels; Map1.CustomOverlays.Add(worldMapKitAerialWithLabelsOverlay); OpenStreetMapOverlay openStreetMapOverlay = new OpenStreetMapOverlay("Open Street Map"); Map1.CustomOverlays.Add(openStreetMapOverlay); // Add spatial fences AddSpatialFenceOverlay(Map1); // Add vehicles. AddVehicleMarkerOverlay(Map1); // Add vehicles position history. AddVehicleHistoryMarkerOverlay(Map1); // Add scale bar ScaleBarAdornmentLayer scaleBarAdormentLayer = new ScaleBarAdornmentLayer(); scaleBarAdormentLayer.XOffsetInPixel = 10; scaleBarAdormentLayer.UnitFamily = UnitSystem.Metric; //Map1.AdornmentOverlay.Layers.Add(scaleBarAdormentLayer); return(Map1); }
private void SetSpecialProperties(ScaleBarAdornmentLayer layer) { layer.MaxWidth = MaximumWidth; layer.Thickness = Thickness; layer.BarBrush = ForeColor; layer.AlternateBarBrush = AlteColor; layer.UnitFamily = SelectedScaleBarUnitSystem; layer.TextStyle.NumericFormat = "###,###"; switch (NumericFormatType) { case ScaleNumericFormatType.Currency: layer.TextStyle.NumericFormat = "C"; break; case ScaleNumericFormatType.Decimal: layer.TextStyle.NumericFormat = "D"; break; case ScaleNumericFormatType.Scientific: layer.TextStyle.NumericFormat = "E"; break; case ScaleNumericFormatType.FixedPoint: layer.TextStyle.NumericFormat = "F"; break; case ScaleNumericFormatType.General: layer.TextStyle.NumericFormat = "G"; break; case ScaleNumericFormatType.Number: layer.TextStyle.NumericFormat = "N"; break; case ScaleNumericFormatType.Percent: layer.TextStyle.NumericFormat = "P"; break; case ScaleNumericFormatType.RoundTrip: layer.TextStyle.NumericFormat = "R"; break; case ScaleNumericFormatType.Hexadecimal: layer.TextStyle.NumericFormat = "X"; break; case ScaleNumericFormatType.None: default: break; } }
public static AdornmentOverlay CreateAdornmentOverlay() { const string adornmentOverlayName = "Adornment Overlay"; AdornmentOverlay adornmentOverlay = new AdornmentOverlay(); adornmentOverlay.Name = adornmentOverlayName; // Create a ScaleBarAdornmentLayer and add it to AdornmentOverlay // The default location is lower-left corner of the map control. ScaleBarAdornmentLayer scaleBarAdornmentLayer = new ScaleBarAdornmentLayer(); adornmentOverlay.Layers.Add(scaleBarAdornmentLayer); return adornmentOverlay; }
private void InitializeMap() { map.MapUnit = GeographyUnit.Meter; map.CurrentExtent = defaultExtent; ScaleBarAdornmentLayer scaleBarAdormentLayer = new ScaleBarAdornmentLayer(); scaleBarAdormentLayer.UnitFamily = UnitSystem.Imperial; map.AdornmentOverlay.Layers.Add(scaleBarAdormentLayer); RadiusMearsureTrackInteractiveOverlay trackOverlay = new RadiusMearsureTrackInteractiveOverlay(DistanceUnit.Mile, map.MapUnit); trackOverlay.TrackEnded += TrackOverlay_TrackEnded; map.TrackOverlay = trackOverlay; InitializeOverlays(); map.Refresh(); }
private void AddAdormentLayers(Map Map1) { // ScaleBar ScaleBarAdornmentLayer scaleBarAdormentLayer = new ScaleBarAdornmentLayer(); scaleBarAdormentLayer.XOffsetInPixel = 10; scaleBarAdormentLayer.XOffsetInPixel = 5; scaleBarAdormentLayer.UnitFamily = UnitSystem.Metric; Map1.AdornmentOverlay.Layers.Add("ScaleBarAdormentLayer", scaleBarAdormentLayer); // Isoline legend adorment layer LegendAdornmentLayer isoLevelLegendLayer = new LegendAdornmentLayer(); isoLevelLegendLayer.IsVisible = false; isoLevelLegendLayer.Width = 85; isoLevelLegendLayer.Height = 320; isoLevelLegendLayer.Location = AdornmentLocation.LowerRight; isoLevelLegendLayer.ContentResizeMode = LegendContentResizeMode.Fixed; LegendItem legendTitle = new LegendItem(); legendTitle.TextStyle = new TextStyle("Magnitude", new GeoFont("Arial", 10), new GeoSolidBrush(GeoColor.StandardColors.Black)); legendTitle.TextLeftPadding = -20; isoLevelLegendLayer.LegendItems.Add(legendTitle); // add legend title // Legend items LayerOverlay earthquakeOverlay = Map1.CustomOverlays["EarthquakeOverlay"] as LayerOverlay; EarthquakeIsoLineFeatureLayer isolineLayer = earthquakeOverlay.Layers["IsoLines Map"] as EarthquakeIsoLineFeatureLayer; for (int i = 0; i < isolineLayer.IsoLineLevels.Count; i++) { LegendItem legendItem = new LegendItem(); legendItem.TextStyle = new TextStyle(isolineLayer.IsoLineLevels[i].ToString("f2"), new GeoFont("Arial", 10), new GeoSolidBrush(GeoColor.StandardColors.Black)); legendItem.ImageStyle = isolineLayer.LevelClassBreakStyle.ClassBreaks[i].DefaultAreaStyle; legendItem.ImageWidth = 25; isoLevelLegendLayer.LegendItems.Add(legendItem); } Map1.AdornmentOverlay.Layers.Add("IsoLineLevelLegendLayer", isoLevelLegendLayer); }
private void InitializeOverlays() { string cacheFolder = Path.Combine(Path.GetTempPath(), "TileCache"); WorldMapKitWmsWpfOverlay worldMapKitRoadOverlay = new WorldMapKitWmsWpfOverlay(); worldMapKitRoadOverlay.Name = Resources.WorldMapKitOverlayRoadName; worldMapKitRoadOverlay.TileHeight = 512; worldMapKitRoadOverlay.TileWidth = 512; worldMapKitRoadOverlay.Projection = WorldMapKitProjection.SphericalMercator; worldMapKitRoadOverlay.MapType = WorldMapKitMapType.Road; worldMapKitRoadOverlay.IsVisible = true; worldMapKitRoadOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.WorldMapKitOverlayRoadName); mapControl.Overlays.Add(worldMapKitRoadOverlay); WorldMapKitWmsWpfOverlay worldMapKitAerialOverlay = new WorldMapKitWmsWpfOverlay(); worldMapKitAerialOverlay.Name = Resources.WorldMapKitOverlayAerialName; worldMapKitAerialOverlay.TileHeight = 512; worldMapKitAerialOverlay.TileWidth = 512; worldMapKitAerialOverlay.Projection = WorldMapKitProjection.SphericalMercator; worldMapKitAerialOverlay.MapType = WorldMapKitMapType.Aerial; worldMapKitAerialOverlay.IsVisible = false; worldMapKitAerialOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.WorldMapKitOverlayAerialName); mapControl.Overlays.Add(worldMapKitAerialOverlay); WorldMapKitWmsWpfOverlay worldMapKitAerialWithLabelsOverlay = new WorldMapKitWmsWpfOverlay(); worldMapKitAerialWithLabelsOverlay.Name = Resources.WorldMapKitOverlayAerialWithLabelsName; worldMapKitAerialWithLabelsOverlay.TileHeight = 512; worldMapKitAerialWithLabelsOverlay.TileWidth = 512; worldMapKitAerialWithLabelsOverlay.Projection = WorldMapKitProjection.SphericalMercator; worldMapKitAerialWithLabelsOverlay.MapType = WorldMapKitMapType.AerialWithLabels; worldMapKitAerialWithLabelsOverlay.IsVisible = false; worldMapKitAerialWithLabelsOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.WorldMapKitOverlayAerialWithLabelsName); mapControl.Overlays.Add(worldMapKitAerialWithLabelsOverlay); OpenStreetMapOverlay openStreetMapOverlay = new OpenStreetMapOverlay(); openStreetMapOverlay.Name = Resources.OpenStreetMapName; openStreetMapOverlay.TileHeight = 512; openStreetMapOverlay.TileWidth = 512; openStreetMapOverlay.IsVisible = false; openStreetMapOverlay.TileCache = new FileBitmapTileCache(cacheFolder, "OpenStreetMap"); mapControl.Overlays.Add(Resources.OpenStreetMapKey, openStreetMapOverlay); BingMapsOverlay bingMapsAerialOverlay = new BingMapsOverlay(); bingMapsAerialOverlay.Name = Resources.BingMapsAerialMapName; bingMapsAerialOverlay.TileHeight = 512; bingMapsAerialOverlay.TileWidth = 512; bingMapsAerialOverlay.MapType = BingMapsMapType.Aerial; bingMapsAerialOverlay.IsVisible = false; bingMapsAerialOverlay.TileCache = new FileBitmapTileCache(cacheFolder, "BingMapsAerial"); mapControl.Overlays.Add(Resources.BingAerialKey, bingMapsAerialOverlay); BingMapsOverlay bingMapsRoadOverlay = new BingMapsOverlay(); bingMapsRoadOverlay.Name = Resources.BingMapsRoadMapName; bingMapsRoadOverlay.TileHeight = 512; bingMapsRoadOverlay.TileWidth = 512; bingMapsRoadOverlay.MapType = BingMapsMapType.Road; bingMapsRoadOverlay.IsVisible = false; bingMapsRoadOverlay.TileCache = new FileBitmapTileCache(cacheFolder, "BingMapsRoad"); mapControl.Overlays.Add(Resources.BingRoadKey, bingMapsRoadOverlay); InMemoryFeatureLayer spatialFenceLayer = new InMemoryFeatureLayer(); spatialFenceLayer.Open(); spatialFenceLayer.Columns.Add(new FeatureSourceColumn(Resources.RestrictedName, "Charater", 10)); spatialFenceLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = new AreaStyle(new GeoPen(GeoColor.FromArgb(255, 204, 204, 204), 2), new GeoSolidBrush(GeoColor.FromArgb(112, 255, 0, 0))); spatialFenceLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.CreateSimpleTextStyle(Resources.RestrictedName, "Arial", 12, DrawingFontStyles.Regular, GeoColor.StandardColors.Black, GeoColor.SimpleColors.White, 2); spatialFenceLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay spatialFenceOverlay = new LayerOverlay(); spatialFenceOverlay.TileType = TileType.SingleTile; spatialFenceOverlay.Name = Resources.SpatialFenceOverlayName; spatialFenceOverlay.Layers.Add(Resources.SpatialFenceLayerName, spatialFenceLayer); mapControl.Overlays.Add(Resources.SpatialFenceOverlayName, spatialFenceOverlay); LayerOverlay traceOverlay = new LayerOverlay(); traceOverlay.Name = Resources.TraceOverlayName; traceOverlay.TileType = TileType.SingleTile; mapControl.Overlays.Add(Resources.TraceOverlayName, traceOverlay); mapControl.Overlays.Add(Resources.PopupOverlayName, new PopupOverlay { Name = Resources.PopupOverlayName }); ScaleBarAdornmentLayer scaleBarAdormentLayer = new ScaleBarAdornmentLayer(); scaleBarAdormentLayer.UnitFamily = UnitSystem.Metric; mapControl.AdornmentOverlay.Layers.Add(Resources.ScaleBarName, scaleBarAdormentLayer); }
private void InitializeOverlays() { string cacheFolder = Path.Combine(Path.GetTempPath(), "TileCache"); WorldMapKitWmsWpfOverlay worldMapKitRoadOverlay = new WorldMapKitWmsWpfOverlay(); worldMapKitRoadOverlay.Name = Resources.WorldMapKitOverlayRoadName; worldMapKitRoadOverlay.TileHeight = 512; worldMapKitRoadOverlay.TileWidth = 512; worldMapKitRoadOverlay.Projection = WorldMapKitProjection.SphericalMercator; worldMapKitRoadOverlay.MapType = WorldMapKitMapType.Road; worldMapKitRoadOverlay.IsVisible = true; worldMapKitRoadOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.WorldMapKitOverlayRoadName); mapControl.Overlays.Add(worldMapKitRoadOverlay); WorldMapKitWmsWpfOverlay worldMapKitAerialOverlay = new WorldMapKitWmsWpfOverlay(); worldMapKitAerialOverlay.Name = Resources.WorldMapKitOverlayAerialName; worldMapKitAerialOverlay.TileHeight = 512; worldMapKitAerialOverlay.TileWidth = 512; worldMapKitAerialOverlay.Projection = WorldMapKitProjection.SphericalMercator; worldMapKitAerialOverlay.MapType = WorldMapKitMapType.Aerial; worldMapKitAerialOverlay.IsVisible = false; worldMapKitAerialOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.WorldMapKitOverlayAerialName); mapControl.Overlays.Add(worldMapKitAerialOverlay); WorldMapKitWmsWpfOverlay worldMapKitAerialWithLabelsOverlay = new WorldMapKitWmsWpfOverlay(); worldMapKitAerialWithLabelsOverlay.Name = Resources.WorldMapKitOverlayAerialWithLabelsName; worldMapKitAerialWithLabelsOverlay.TileHeight = 512; worldMapKitAerialWithLabelsOverlay.TileWidth = 512; worldMapKitAerialWithLabelsOverlay.Projection = WorldMapKitProjection.SphericalMercator; worldMapKitAerialWithLabelsOverlay.MapType = WorldMapKitMapType.AerialWithLabels; worldMapKitAerialWithLabelsOverlay.IsVisible = false; worldMapKitAerialWithLabelsOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.WorldMapKitOverlayAerialWithLabelsName); mapControl.Overlays.Add(worldMapKitAerialWithLabelsOverlay); OpenStreetMapOverlay openStreetMapOverlay = new OpenStreetMapOverlay(); openStreetMapOverlay.Name = Resources.OpenStreetMapName; openStreetMapOverlay.TileHeight = 512; openStreetMapOverlay.TileWidth = 512; openStreetMapOverlay.IsVisible = false; openStreetMapOverlay.TileCache = new FileBitmapTileCache(cacheFolder, "OpenStreetMap"); mapControl.Overlays.Add(Resources.OpenStreetMapKey, openStreetMapOverlay); BingMapsOverlay bingMapsAerialOverlay = new BingMapsOverlay(); bingMapsAerialOverlay.Name = Resources.BingMapsAerialMapName; bingMapsAerialOverlay.TileHeight = 512; bingMapsAerialOverlay.TileWidth = 512; bingMapsAerialOverlay.MapType = Wpf.BingMapsMapType.Aerial; bingMapsAerialOverlay.IsVisible = false; bingMapsAerialOverlay.TileCache = new FileBitmapTileCache(cacheFolder, "BingMapsAerial"); mapControl.Overlays.Add(Resources.BingAerialKey, bingMapsAerialOverlay); BingMapsOverlay bingMapsRoadOverlay = new BingMapsOverlay(); bingMapsRoadOverlay.Name = Resources.BingMapsRoadMapName; bingMapsRoadOverlay.TileHeight = 512; bingMapsRoadOverlay.TileWidth = 512; bingMapsRoadOverlay.MapType = Wpf.BingMapsMapType.Road; bingMapsRoadOverlay.IsVisible = false; bingMapsRoadOverlay.TileCache = new FileBitmapTileCache(cacheFolder, "BingMapsRoad"); mapControl.Overlays.Add(Resources.BingRoadKey, bingMapsRoadOverlay); InMemoryFeatureLayer spatialFenceLayer = new InMemoryFeatureLayer(); spatialFenceLayer.Open(); spatialFenceLayer.Columns.Add(new FeatureSourceColumn(Resources.RestrictedName, "Charater", 10)); spatialFenceLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = new AreaStyle(new GeoPen(GeoColor.FromArgb(255, 204, 204, 204), 2), new GeoSolidBrush(GeoColor.FromArgb(112, 255, 0, 0))); spatialFenceLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.CreateSimpleTextStyle(Resources.RestrictedName, "Arial", 12, DrawingFontStyles.Regular, GeoColor.StandardColors.Black, GeoColor.SimpleColors.White, 2); spatialFenceLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay spatialFenceOverlay = new LayerOverlay(); spatialFenceOverlay.TileType = TileType.SingleTile; spatialFenceOverlay.Name = Resources.SpatialFenceOverlayName; spatialFenceOverlay.Layers.Add(Resources.SpatialFenceLayerName, spatialFenceLayer); mapControl.Overlays.Add(Resources.SpatialFenceOverlayName, spatialFenceOverlay); LayerOverlay traceOverlay = new LayerOverlay(); traceOverlay.Name = Resources.TraceOverlayName; traceOverlay.TileType = TileType.SingleTile; mapControl.Overlays.Add(Resources.TraceOverlayName, traceOverlay); mapControl.Overlays.Add(Resources.PopupOverlayName, new PopupOverlay { Name = Resources.PopupOverlayName }); ScaleBarAdornmentLayer scaleBarAdormentLayer = new ScaleBarAdornmentLayer(); scaleBarAdormentLayer.UnitFamily = UnitSystem.Metric; mapControl.AdornmentOverlay.Layers.Add(Resources.ScaleBarName, scaleBarAdormentLayer); }
private void TestForm_Load(object sender, EventArgs e) { winformsMap1.MapUnit = GeographyUnit.DecimalDegree; winformsMap1.CurrentExtent = new RectangleShape(-88.0309, 42.2772, -88.0036, 42.2609); winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.FromArgb(255, 198, 255, 255)); //Displays the World Map Kit as a background. WorldMapKitWmsDesktopOverlay worldMapKitDesktopOverlay = new WorldMapKitWmsDesktopOverlay(); winformsMap1.Overlays.Add(worldMapKitDesktopOverlay); ManagedProj4Projection proj4 = new ManagedProj4Projection(); proj4.InternalProjectionParametersString = ManagedProj4Projection.GetEpsgParametersString(26916); proj4.ExternalProjectionParametersString = ManagedProj4Projection.GetEpsgParametersString(4326); ShapeFileFeatureLayer layer1 = new ShapeFileFeatureLayer(@"..\..\data\lake_streets_utm16.shp"); layer1.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.StandardColors.DarkGreen, 4, true); layer1.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; layer1.FeatureSource.Projection = proj4; ShapeFileFeatureLayer layer2 = new ShapeFileFeatureLayer(@"..\..\data\lake_poly.shp"); layer2.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(150, GeoColor.StandardColors.Green), GeoColor.StandardColors.Black); layer2.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay layerOverlay = new LayerOverlay(); layerOverlay.Layers.Add(layer1); layerOverlay.Layers.Add(layer2); winformsMap1.Overlays.Add(layerOverlay); InMemoryFeatureLayer inMemoryFeatureLayer = new InMemoryFeatureLayer(); inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.CreateSimpleCircleStyle(GeoColor.StandardColors.Red, 10); inMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; PointShape pointShape = new PointShape(-88.0168, 42.2688); inMemoryFeatureLayer.InternalFeatures.Add(new Feature(pointShape)); InMemoryFeatureLayer selectInMemoryFeatureLayer = new InMemoryFeatureLayer(); selectInMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.StandardColors.Yellow); selectInMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.StandardColors.Yellow, 3, true); selectInMemoryFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; double meterDistance = 300; layer1.Open(); // This method works fine with Map Suite Assemblies 4.5.54.0 or later. Collection <Feature> withinFeatures1 = layer1.QueryTools.GetFeaturesWithinDistanceOf(pointShape, winformsMap1.MapUnit, DistanceUnit.Meter, meterDistance, ReturningColumnsType.AllColumns); layer1.Close(); foreach (Feature withinFeature1 in withinFeatures1) { selectInMemoryFeatureLayer.InternalFeatures.Add(withinFeature1); } layer2.Open(); Collection <Feature> withinFeatures2 = layer2.QueryTools.GetFeaturesWithinDistanceOf(pointShape, winformsMap1.MapUnit, DistanceUnit.Meter, meterDistance, ReturningColumnsType.AllColumns); layer2.Close(); foreach (Feature withinFeature2 in withinFeatures2) { selectInMemoryFeatureLayer.InternalFeatures.Add(withinFeature2); } LayerOverlay dynamicOverlay = new LayerOverlay(); dynamicOverlay.Layers.Add(inMemoryFeatureLayer); dynamicOverlay.Layers.Add(selectInMemoryFeatureLayer); winformsMap1.Overlays.Add(dynamicOverlay); ScaleBarAdornmentLayer scaleBarAdornmentLayer = new ScaleBarAdornmentLayer(); scaleBarAdornmentLayer.UnitFamily = UnitSystem.Metric; scaleBarAdornmentLayer.Location = AdornmentLocation.LowerLeft; winformsMap1.AdornmentOverlay.Layers.Add(scaleBarAdornmentLayer); winformsMap1.Refresh(); }
private void AddOverlays(Map map) { // Background Overlay WorldStreetsAndImageryOverlay worldMapKitRoadOverlay = new WorldStreetsAndImageryOverlay("World Map Kit Road"); worldMapKitRoadOverlay.Projection = WorldStreetsAndImageryProjection.SphericalMercator; worldMapKitRoadOverlay.MapType = WorldStreetsAndImageryMapType.Road; map.CustomOverlays.Add(worldMapKitRoadOverlay); WorldStreetsAndImageryOverlay worldMapKitAerialOverlay = new WorldStreetsAndImageryOverlay("World Map Kit Aerial"); worldMapKitAerialOverlay.Projection = WorldStreetsAndImageryProjection.SphericalMercator; worldMapKitAerialOverlay.MapType = WorldStreetsAndImageryMapType.Aerial; map.CustomOverlays.Add(worldMapKitAerialOverlay); WorldStreetsAndImageryOverlay worldMapKitAerialWithLabelsOverlay = new WorldStreetsAndImageryOverlay("World Map Kit Aerial With Labels"); worldMapKitAerialWithLabelsOverlay.Projection = WorldStreetsAndImageryProjection.SphericalMercator; worldMapKitAerialWithLabelsOverlay.MapType = WorldStreetsAndImageryMapType.AerialWithLabels; map.CustomOverlays.Add(worldMapKitAerialWithLabelsOverlay); OpenStreetMapOverlay openStreetMapOverlay = new OpenStreetMapOverlay("Open Street Map"); map.CustomOverlays.Add(openStreetMapOverlay); LayerOverlay poisOverlay = new LayerOverlay("PoisOverlay"); poisOverlay.IsBaseOverlay = false; poisOverlay.IsVisibleInOverlaySwitcher = false; map.CustomOverlays.Add(poisOverlay); // POI Overlay Proj4Projection proj4 = new Proj4Projection(); proj4.InternalProjectionParametersString = Proj4Projection.GetDecimalDegreesParametersString(); proj4.ExternalProjectionParametersString = Proj4Projection.GetSphericalMercatorParametersString(); proj4.Open(); ShapeFileFeatureLayer hotelsLayer = new ShapeFileFeatureLayer(Server.MapPath(ConfigurationManager.AppSettings["HotelsShapeFilePathName"]), GeoFileReadWriteMode.Read); hotelsLayer.Name = Resource.Hotels; hotelsLayer.Transparency = 120f; hotelsLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle = new PointStyle(new GeoImage(Server.MapPath("~/Content/Images/Hotel.png"))); hotelsLayer.ZoomLevelSet.ZoomLevel10.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; hotelsLayer.FeatureSource.Projection = proj4; poisOverlay.Layers.Add(hotelsLayer.Name, hotelsLayer); ShapeFileFeatureLayer medicalFacilitesLayer = new ShapeFileFeatureLayer(Server.MapPath(ConfigurationManager.AppSettings["MedicalFacilitiesShapeFilePathName"]), GeoFileReadWriteMode.Read); medicalFacilitesLayer.Name = Resource.MedicalFacilites; medicalFacilitesLayer.Transparency = 120f; medicalFacilitesLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle = new PointStyle(new GeoImage(Server.MapPath("~/Content/Images/DrugStore.png"))); medicalFacilitesLayer.ZoomLevelSet.ZoomLevel10.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; medicalFacilitesLayer.FeatureSource.Projection = proj4; poisOverlay.Layers.Add(medicalFacilitesLayer.Name, medicalFacilitesLayer); ShapeFileFeatureLayer publicFacilitesLayer = new ShapeFileFeatureLayer(Server.MapPath(ConfigurationManager.AppSettings["PublicFacilitiesShapeFilePathName"]), GeoFileReadWriteMode.Read); publicFacilitesLayer.Name = Resource.PublicFacilites; publicFacilitesLayer.Transparency = 120f; publicFacilitesLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle = new PointStyle(new GeoImage(Server.MapPath("~/Content/Images/public_facility.png"))); publicFacilitesLayer.ZoomLevelSet.ZoomLevel10.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; publicFacilitesLayer.FeatureSource.Projection = proj4; poisOverlay.Layers.Add(publicFacilitesLayer.Name, publicFacilitesLayer); ShapeFileFeatureLayer restaurantsLayer = new ShapeFileFeatureLayer(Server.MapPath(ConfigurationManager.AppSettings["RestaurantsShapeFilePathName"]), GeoFileReadWriteMode.Read); restaurantsLayer.Name = Resource.Restaurants; restaurantsLayer.Transparency = 120f; restaurantsLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle = new PointStyle(new GeoImage(Server.MapPath("~/Content/Images/restaurant.png"))); restaurantsLayer.ZoomLevelSet.ZoomLevel10.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; restaurantsLayer.FeatureSource.Projection = proj4; poisOverlay.Layers.Add(restaurantsLayer.Name, restaurantsLayer); ShapeFileFeatureLayer schoolsLayer = new ShapeFileFeatureLayer(Server.MapPath(ConfigurationManager.AppSettings["SchoolsShapeFilePathName"]), GeoFileReadWriteMode.Read); schoolsLayer.Name = Resource.Schools; schoolsLayer.Transparency = 120f; schoolsLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle = new PointStyle(new GeoImage(Server.MapPath("~/Content/Images/school.png"))); schoolsLayer.ZoomLevelSet.ZoomLevel10.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; schoolsLayer.FeatureSource.Projection = proj4; poisOverlay.Layers.Add(schoolsLayer.Name, schoolsLayer); // Restrict area Overlay ShapeFileFeatureLayer restrictedLayer = new ShapeFileFeatureLayer(Server.MapPath(ConfigurationManager.AppSettings["RestrictedShapeFilePathName"]), GeoFileReadWriteMode.Read); AreaStyle extentStyle = new AreaStyle(); extentStyle.CustomAreaStyles.Add(new AreaStyle(new GeoSolidBrush(GeoColor.SimpleColors.Transparent)) { OutlinePen = new GeoPen(GeoColor.SimpleColors.White, 5.5f) }); extentStyle.CustomAreaStyles.Add(new AreaStyle(new GeoSolidBrush(GeoColor.SimpleColors.Transparent)) { OutlinePen = new GeoPen(GeoColor.SimpleColors.Red, 1.5f) { DashStyle = LineDashStyle.Dash } }); restrictedLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = extentStyle; restrictedLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; restrictedLayer.FeatureSource.Projection = proj4; LayerOverlay restrictOverlay = new LayerOverlay("RestrictOverlay"); restrictOverlay.IsBaseOverlay = false; restrictOverlay.IsVisibleInOverlaySwitcher = false; restrictOverlay.Layers.Add("RestrictLayer", restrictedLayer); map.CustomOverlays.Add(restrictOverlay); // Queried Service Overlay InMemoryFeatureLayer serviceAreaLayer = new InMemoryFeatureLayer(); GeoColor serviceAreaGeoColor = new GeoColor(120, GeoColor.FromHtml("#1749c9")); serviceAreaLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(serviceAreaGeoColor, GeoColor.FromHtml("#fefec1"), 2, LineDashStyle.Solid); serviceAreaLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; InMemoryFeatureLayer highlightFeatureLayer = new InMemoryFeatureLayer(); highlightFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay queriedOverlay = new LayerOverlay("QueriedOverlay"); queriedOverlay.IsBaseOverlay = false; queriedOverlay.IsVisibleInOverlaySwitcher = false; queriedOverlay.TileType = TileType.SingleTile; queriedOverlay.Layers.Add("highlightFeatureLayer", highlightFeatureLayer); queriedOverlay.Layers.Add("serviceArea", serviceAreaLayer); map.CustomOverlays.Add(queriedOverlay); // Marker Overlay map.MarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage = new WebImage("/Content/Images/selectedHalo.png") { ImageOffsetX = -16, ImageOffsetY = -16 }; map.MarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.BorderWidth = 1; map.MarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.BorderColor = GeoColor.StandardColors.Gray; map.MarkerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.Popup.AutoSize = true; map.MarkerOverlay.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; map.MarkerOverlay.IsVisibleInOverlaySwitcher = false; // Drawn Point InMemoryMarkerOverlay markerOverlay = new InMemoryMarkerOverlay("DrawnPointOverlay"); markerOverlay.FeatureSource.InternalFeatures.Add(new Feature(new PointShape(-10776838.0796536, 3912346.50475619))); // Add a initial point for query markerOverlay.IsVisibleInOverlaySwitcher = false; markerOverlay.ZoomLevelSet.ZoomLevel01.DefaultMarkerStyle.WebImage = new WebImage("/Content/Images/drawPoint.png") { ImageOffsetX = -16, ImageOffsetY = -32 }; markerOverlay.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; map.CustomOverlays.Add(markerOverlay); // Legend Layer LegendAdornmentLayer legendlayer = new LegendAdornmentLayer { Height = 135, Location = AdornmentLocation.LowerRight }; map.AdornmentOverlay.Layers.Add(legendlayer); LegendItem hotelsLayeritem = new LegendItem(); hotelsLayeritem.ImageStyle = hotelsLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle; hotelsLayeritem.TextStyle = WorldStreetsTextStyles.GeneralPurpose(Resource.Hotels, 10); legendlayer.LegendItems.Add("hotels", hotelsLayeritem); LegendItem medicalFacilitesLayeritem = new LegendItem(); medicalFacilitesLayeritem.ImageStyle = medicalFacilitesLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle; hotelsLayeritem.TextStyle = WorldStreetsTextStyles.GeneralPurpose(Resource.MedicalFacilites, 10); legendlayer.LegendItems.Add("medicalFacilites", medicalFacilitesLayeritem); LegendItem publicFacilitesLayeritem = new LegendItem(); publicFacilitesLayeritem.ImageStyle = publicFacilitesLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle; hotelsLayeritem.TextStyle = WorldStreetsTextStyles.GeneralPurpose(Resource.PublicFacilites, 10); legendlayer.LegendItems.Add("publicFacilites", publicFacilitesLayeritem); LegendItem restaurantsLayeritem = new LegendItem(); restaurantsLayeritem.ImageStyle = restaurantsLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle; hotelsLayeritem.TextStyle = WorldStreetsTextStyles.GeneralPurpose(Resource.Restaurants, 10); legendlayer.LegendItems.Add("restaurants", restaurantsLayeritem); LegendItem schoolsLayeritem = new LegendItem(); schoolsLayeritem.ImageStyle = schoolsLayer.ZoomLevelSet.ZoomLevel10.DefaultPointStyle; hotelsLayeritem.TextStyle = WorldStreetsTextStyles.GeneralPurpose(Resource.Schools, 10); legendlayer.LegendItems.Add("schools", schoolsLayeritem); // Scale bar layer ScaleBarAdornmentLayer scaleBarAdormentLayer = new ScaleBarAdornmentLayer(); scaleBarAdormentLayer.Location = AdornmentLocation.LowerLeft; scaleBarAdormentLayer.XOffsetInPixel = 10; map.AdornmentOverlay.Layers.Add("ScaleBar", scaleBarAdormentLayer); map.AdornmentOverlay.IsVisibleInOverlaySwitcher = false; // Create the Routine Engine. string streetShapeFilePathName = Server.MapPath(ConfigurationManager.AppSettings["StreetShapeFilePathName"]); string streetRtgFilePathName = Path.ChangeExtension(streetShapeFilePathName, ".rtg"); RtgRoutingSource routingSource = new RtgRoutingSource(streetRtgFilePathName); FeatureSource featureSource = new ShapeFileFeatureSource(streetShapeFilePathName); featureSource.Projection = proj4; routingEngine = new RoutingEngine(routingSource, featureSource); routingEngine.GeographyUnit = GeographyUnit.Meter; }
private void InitializeOverlays() { string cacheFolder = Path.Combine(Path.GetTempPath(), "TileCache"); WorldMapKitWmsWpfOverlay worldMapKitRoadOverlay = new WorldMapKitWmsWpfOverlay(); worldMapKitRoadOverlay.Name = Resources.WorldMapKitOverlayRoadName; worldMapKitRoadOverlay.TileHeight = 512; worldMapKitRoadOverlay.TileWidth = 512; worldMapKitRoadOverlay.Projection = WorldMapKitProjection.SphericalMercator; worldMapKitRoadOverlay.MapType = WorldMapKitMapType.Road; worldMapKitRoadOverlay.IsVisible = true; worldMapKitRoadOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.WorldMapKitOverlayRoadName); mapControl.Overlays.Add(worldMapKitRoadOverlay); WorldMapKitWmsWpfOverlay worldMapKitAerialOverlay = new WorldMapKitWmsWpfOverlay(); worldMapKitAerialOverlay.Name = Resources.WorldMapKitOverlayAerialName; worldMapKitAerialOverlay.TileHeight = 512; worldMapKitAerialOverlay.TileWidth = 512; worldMapKitAerialOverlay.Projection = WorldMapKitProjection.SphericalMercator; worldMapKitAerialOverlay.MapType = WorldMapKitMapType.Aerial; worldMapKitAerialOverlay.IsVisible = false; worldMapKitAerialOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.WorldMapKitOverlayAerialName); mapControl.Overlays.Add(worldMapKitAerialOverlay); WorldMapKitWmsWpfOverlay worldMapKitAerialWithLabelsOverlay = new WorldMapKitWmsWpfOverlay(); worldMapKitAerialWithLabelsOverlay.Name = Resources.WorldMapKitOverlayAerialWithLabelsName; worldMapKitAerialWithLabelsOverlay.TileHeight = 512; worldMapKitAerialWithLabelsOverlay.TileWidth = 512; worldMapKitAerialWithLabelsOverlay.Projection = WorldMapKitProjection.SphericalMercator; worldMapKitAerialWithLabelsOverlay.MapType = WorldMapKitMapType.AerialWithLabels; worldMapKitAerialWithLabelsOverlay.IsVisible = false; worldMapKitAerialWithLabelsOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.WorldMapKitOverlayAerialWithLabelsName); mapControl.Overlays.Add(worldMapKitAerialWithLabelsOverlay); OpenStreetMapOverlay openStreetMapOverlay = new OpenStreetMapOverlay(); openStreetMapOverlay.Name = Resources.OSMOverlayName; openStreetMapOverlay.TileHeight = 512; openStreetMapOverlay.TileWidth = 512; openStreetMapOverlay.IsVisible = false; openStreetMapOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.OSMOverlayName); mapControl.Overlays.Add(openStreetMapOverlay); BingMapsOverlay bingMapsAerialOverlay = new BingMapsOverlay(); bingMapsAerialOverlay.Name = Resources.BingMapsAerialOverlayName; bingMapsAerialOverlay.TileHeight = 512; bingMapsAerialOverlay.TileWidth = 512; bingMapsAerialOverlay.MapType = BingMapsMapType.Aerial; bingMapsAerialOverlay.IsVisible = false; bingMapsAerialOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.BingMapsAerialOverlayName); mapControl.Overlays.Add(bingMapsAerialOverlay); BingMapsOverlay bingMapsRoadOverlay = new BingMapsOverlay(); bingMapsRoadOverlay.Name = Resources.BingMapsRoadOverlayName; bingMapsRoadOverlay.TileHeight = 512; bingMapsRoadOverlay.TileWidth = 512; bingMapsRoadOverlay.MapType = BingMapsMapType.Road; bingMapsRoadOverlay.IsVisible = false; bingMapsRoadOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.BingMapsRoadOverlayName); mapControl.Overlays.Add(bingMapsRoadOverlay); LayerOverlay styleLayersOverLay = new LayerOverlay(); styleLayersOverLay.TileType = TileType.SingleTile; mapControl.Overlays.Add(Resources.StyleLayerOverLayKey, styleLayersOverLay); ManagedProj4Projection wgs84ToMercatorProjection = new ManagedProj4Projection(); wgs84ToMercatorProjection.InternalProjectionParametersString = ManagedProj4Projection.GetDecimalDegreesParametersString(); wgs84ToMercatorProjection.ExternalProjectionParametersString = ManagedProj4Projection.GetSphericalMercatorParametersString(); EarthquakeHeatFeatureLayer heatLayer = new EarthquakeHeatFeatureLayer(new ShapeFileFeatureSource(ConfigurationManager.AppSettings["DataShapefileFileName"])); heatLayer.HeatStyle = new HeatStyle(10, 100, Resources.MagnitudeColumnName, 0, 12, 100, DistanceUnit.Kilometer); heatLayer.FeatureSource.Projection = wgs84ToMercatorProjection; heatLayer.Name = Resources.HeatStyleLayerName; styleLayersOverLay.Layers.Add(heatLayer); ShapeFileFeatureLayer pointLayer = new ShapeFileFeatureLayer(ConfigurationManager.AppSettings["DataShapefileFileName"]); pointLayer.FeatureSource.Projection = wgs84ToMercatorProjection; pointLayer.Name = Resources.PointStyleLayerName; pointLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.CreateSimpleCircleStyle(GeoColor.StandardColors.Red, 6, GeoColor.StandardColors.White, 1); pointLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; styleLayersOverLay.Layers.Add(pointLayer); EarthquakeIsoLineFeatureLayer isoLineLayer = new EarthquakeIsoLineFeatureLayer(new ShapeFileFeatureSource(ConfigurationManager.AppSettings["DataShapefileFileName"])); isoLineLayer.FeatureSource.Projection = wgs84ToMercatorProjection; isoLineLayer.Name = Resources.IsolineStyleLayerName; styleLayersOverLay.Layers.Add(isoLineLayer); //Setup TarckOverlay. mapControl.TrackOverlay = new RadiusMearsureTrackInteractiveOverlay(DistanceUnit.Mile, mapControl.MapUnit); mapControl.TrackOverlay.TrackEnded += TrackOverlay_TrackEnded; LayerOverlay markerOverlay = new LayerOverlay(); mapControl.Overlays.Add(Resources.MarkerOverlayKey, markerOverlay); PointStyle highLightStyle = new PointStyle(); highLightStyle.CustomPointStyles.Add(PointStyles.CreateSimpleCircleStyle(GeoColor.FromArgb(50, GeoColor.SimpleColors.Blue), 20, GeoColor.SimpleColors.LightBlue, 1)); highLightStyle.CustomPointStyles.Add(PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.LightBlue, 9, GeoColor.SimpleColors.Blue, 1)); markerMemoryLayer = new InMemoryFeatureLayer(); markerMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.Orange, 8, GeoColor.SimpleColors.White, 1); markerMemoryLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; markerOverlay.Layers.Add(markerMemoryLayer); markerMemoryHighlightLayer = new InMemoryFeatureLayer(); markerMemoryHighlightLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = highLightStyle; markerMemoryHighlightLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; markerOverlay.Layers.Add(markerMemoryHighlightLayer); ScaleBarAdornmentLayer scaleBarAdornmentLayer = new ScaleBarAdornmentLayer(); scaleBarAdornmentLayer.UnitFamily = UnitSystem.Imperial; mapControl.AdornmentOverlay.Layers.Add(scaleBarAdornmentLayer); }
public static ScaleLineOrBarAdornmentLayerViewModel CreateInstance(AdornmentLayer scaleLayer) { ScaleLineOrBarAdornmentLayerViewModel newLayer = new ScaleLineOrBarAdornmentLayerViewModel(); if (scaleLayer is ScaleBarAdornmentLayer) { newLayer.ScaleType = ScaleType.ScaleBar; newLayer.NumericFormatType = ScaleNumericFormatType.None; string formatString = ((ScaleBarAdornmentLayer)scaleLayer).TextStyle.NumericFormat.ToUpperInvariant(); switch (formatString) { case "C": newLayer.NumericFormatType = ScaleNumericFormatType.Currency; break; case "D": newLayer.NumericFormatType = ScaleNumericFormatType.Decimal; break; case "E": newLayer.NumericFormatType = ScaleNumericFormatType.Scientific; break; case "F": newLayer.NumericFormatType = ScaleNumericFormatType.FixedPoint; break; case "G": newLayer.NumericFormatType = ScaleNumericFormatType.General; break; case "N": newLayer.NumericFormatType = ScaleNumericFormatType.Number; break; case "P": newLayer.NumericFormatType = ScaleNumericFormatType.Percent; break; case "R": newLayer.NumericFormatType = ScaleNumericFormatType.RoundTrip; break; case "X": newLayer.NumericFormatType = ScaleNumericFormatType.Hexadecimal; break; default: break; } newLayer.selectedScaleBarUnitSystem = ((ScaleBarAdornmentLayer)scaleLayer).UnitFamily; } else { newLayer.ScaleType = ScaleType.ScaleLine; newLayer.selectedScaleLineUnitSystem = ((ScaleLineAdornmentLayer)scaleLayer).UnitSystem; } newLayer.Name = scaleLayer.Name; newLayer.Width = (int)scaleLayer.Width; newLayer.Location = scaleLayer.Location; newLayer.OffsetX = (int)scaleLayer.XOffsetInPixel; newLayer.OffsetY = (int)scaleLayer.YOffsetInPixel; newLayer.BackMask = scaleLayer.BackgroundMask; newLayer.Height = (int)scaleLayer.Height; if (scaleLayer is ScaleBarAdornmentLayer) { ScaleBarAdornmentLayer scaleBarLayer = (ScaleBarAdornmentLayer)scaleLayer; newLayer.MaximumWidth = scaleBarLayer.MaxWidth; newLayer.Thickness = scaleBarLayer.Thickness; newLayer.ForeColor = scaleBarLayer.BarBrush; newLayer.AlteColor = scaleBarLayer.AlternateBarBrush; newLayer.SelectedScaleBarUnitSystem = scaleBarLayer.UnitFamily; } return(newLayer); }
public ScaleBarPrinterLayerAdapter(SimplifyMapPrinterLayer mapPrinterLayer, ScaleBarAdornmentLayer scaleBarAdornmentLayer) { this.mapPrinterLayer = mapPrinterLayer; this.scaleBarAdornmentLayer = scaleBarAdornmentLayer; }
private void TestForm_Load(object sender, EventArgs e) { winformsMap1.MapUnit = GeographyUnit.DecimalDegree; winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.StandardColors.LightGoldenrodYellow); //Scale bar to have a graphic representation of the scale ScaleBarAdornmentLayer scaleBar = new ScaleBarAdornmentLayer(); scaleBar.UnitFamily = UnitSystem.Metric; scaleBar.Location = AdornmentLocation.LowerLeft; winformsMap1.AdornmentOverlay.Layers.Add(scaleBar); //Snapping mode to none so that we can set and get the exact scale without snapping the map. winformsMap1.ZoomLevelSnapping = ZoomLevelSnappingMode.None; //Set of 10 zoom levels from 1:200,00 to 1:250 the zoom level below being half in scale compare to the previous zoom level. //Notice that the scale parameter for ZoomLevel is the middle scale for that zoom level. The range of scale for the zoom level //will be based on the scale values of the zoom level below and above. //As an academic reminder, the scale means the ratio on the map to the corresponding distance on the ground. So, a scale of 1:100,000 //means that one unit (for example one centimeter) on the map represents 100,000 units ( or 100,000 centimeters or 1 kilometers on the ground). ZoomLevelSet partitionedZoomLevelSet = new ZoomLevelSet(); partitionedZoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(200000)); //Zoom Level 1 1:200,000 (beyond 1:150,000) partitionedZoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(100000)); //Zoom Level 2 1:100,000 (from 1:75,000 to 1:150,000) partitionedZoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(50000)); //Zoom Level 3 1: 50,000 (from 1:37,000 to 1:75,000) partitionedZoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(25000)); //Zoom Level 4 1: 25,000 (from 1:17,000 to 1:37,500) partitionedZoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(10000)); //Zoom Level 5 1: 10,000 (from 1:7,500 to 1:17,500) partitionedZoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(5000)); //Zoom Level 6 1: 5,000 (from 1:3,750 to 1:7,500) partitionedZoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(2500)); //Zoom Level 7 1: 2,500 (from 1:1,750 to 1:3,750) partitionedZoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(1000)); //Zoom Level 8 1: 1,000 (from 1:750 to 1:1,750) partitionedZoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(500)); //Zoom Level 9 1: 500 (from 1:375 to 1:750) partitionedZoomLevelSet.CustomZoomLevels.Add(new ZoomLevel(250)); //Zoom Level 10 1: 250 (below 1:375) winformsMap1.ZoomLevelSet = partitionedZoomLevelSet; //Uses the Name property of ZoomLevel to give the characteristics such as the scale range. Collection <ZoomLevel> zoomLevels = winformsMap1.ZoomLevelSet.GetZoomLevels(); for (int i = 0; i < zoomLevels.Count; i++) { string ScaleRange; double BottomScale, TopScale; if (i == 0) { BottomScale = zoomLevels[i + 1].Scale + ((zoomLevels[i].Scale - zoomLevels[i + 1].Scale) / 2); ScaleRange = "Beyond 1: " + String.Format("{0:0,0}", BottomScale); } else if (i < zoomLevels.Count - 1) { BottomScale = zoomLevels[i + 1].Scale + ((zoomLevels[i].Scale - zoomLevels[i + 1].Scale) / 2); TopScale = zoomLevels[i].Scale + ((zoomLevels[i - 1].Scale - zoomLevels[i].Scale) / 2); ScaleRange = "From 1: " + String.Format("{0:0,0}", BottomScale) + " to 1: " + String.Format("{0:0,0}", TopScale); } else { TopScale = zoomLevels[i].Scale + ((zoomLevels[i - 1].Scale - zoomLevels[i].Scale) / 2); ScaleRange = "Below 1: " + String.Format("{0:0,0}", TopScale); } zoomLevels[i].Name = "Zoom Level " + (i + 1).ToString() + " " + ScaleRange; } ShapeFileFeatureLayer layer1 = new ShapeFileFeatureLayer(@"..\..\Data\Austinstreets.shp"); //Sets the custom Zoom levels to ZoomLevelSet layer1.ZoomLevelSet = partitionedZoomLevelSet; //Set a different style at each zoom level to help distinguish when we change zoom level when zooming in and out on the map. layer1.ZoomLevelSet.CustomZoomLevels[0].DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.StandardColors.Red, 2, true); layer1.ZoomLevelSet.CustomZoomLevels[1].DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.StandardColors.Green, 2, true); layer1.ZoomLevelSet.CustomZoomLevels[2].DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.StandardColors.Pink, 2, true); layer1.ZoomLevelSet.CustomZoomLevels[3].DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.StandardColors.Blue, 2, true); layer1.ZoomLevelSet.CustomZoomLevels[4].DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.StandardColors.Orange, 2, true); layer1.ZoomLevelSet.CustomZoomLevels[5].DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.StandardColors.Turquoise, 2, true); layer1.ZoomLevelSet.CustomZoomLevels[6].DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.StandardColors.Violet, 2, true); layer1.ZoomLevelSet.CustomZoomLevels[7].DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.StandardColors.YellowGreen, 2, true); layer1.ZoomLevelSet.CustomZoomLevels[8].DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.StandardColors.Brown, 2, true); layer1.ZoomLevelSet.CustomZoomLevels[9].DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.StandardColors.DarkGreen, 2, true); LayerOverlay layerOverlay = new LayerOverlay(); layerOverlay.Layers.Add(layer1); winformsMap1.Overlays.Add(layerOverlay); layer1.Open(); winformsMap1.CurrentExtent = layer1.GetBoundingBox(); layer1.Close(); winformsMap1.Refresh(); lblZoom.Text = winformsMap1.ZoomLevelSet.GetZoomLevel(winformsMap1.CurrentExtent, winformsMap1.Width, winformsMap1.MapUnit).Name; }
private void InitializeOverlays() { string cacheFolder = Path.Combine(Path.GetTempPath(), "TileCache"); WorldMapKitWmsWpfOverlay worldMapKitRoadOverlay = new WorldMapKitWmsWpfOverlay(); worldMapKitRoadOverlay.Name = Resources.WorldMapKitOverlayRoadName; worldMapKitRoadOverlay.TileHeight = 512; worldMapKitRoadOverlay.TileWidth = 512; worldMapKitRoadOverlay.Projection = WorldMapKitProjection.SphericalMercator; worldMapKitRoadOverlay.MapType = WorldMapKitMapType.Road; worldMapKitRoadOverlay.IsVisible = true; worldMapKitRoadOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.WorldMapKitOverlayRoadName); mapControl.Overlays.Add(worldMapKitRoadOverlay); WorldMapKitWmsWpfOverlay worldMapKitAerialOverlay = new WorldMapKitWmsWpfOverlay(); worldMapKitAerialOverlay.Name = Resources.WorldMapKitOverlayAerialName; worldMapKitAerialOverlay.TileHeight = 512; worldMapKitAerialOverlay.TileWidth = 512; worldMapKitAerialOverlay.Projection = WorldMapKitProjection.SphericalMercator; worldMapKitAerialOverlay.MapType = WorldMapKitMapType.Aerial; worldMapKitAerialOverlay.IsVisible = false; worldMapKitAerialOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.WorldMapKitOverlayAerialName); mapControl.Overlays.Add(worldMapKitAerialOverlay); WorldMapKitWmsWpfOverlay worldMapKitAerialWithLabelsOverlay = new WorldMapKitWmsWpfOverlay(); worldMapKitAerialWithLabelsOverlay.Name = Resources.WorldMapKitOverlayAerialWithLabelsName; worldMapKitAerialWithLabelsOverlay.TileHeight = 512; worldMapKitAerialWithLabelsOverlay.TileWidth = 512; worldMapKitAerialWithLabelsOverlay.Projection = WorldMapKitProjection.SphericalMercator; worldMapKitAerialWithLabelsOverlay.MapType = WorldMapKitMapType.AerialWithLabels; worldMapKitAerialWithLabelsOverlay.IsVisible = false; worldMapKitAerialWithLabelsOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.WorldMapKitOverlayAerialWithLabelsName); mapControl.Overlays.Add(worldMapKitAerialWithLabelsOverlay); OpenStreetMapOverlay openStreetMapOverlay = new OpenStreetMapOverlay(); openStreetMapOverlay.Name = Resources.OSMOverlayName; openStreetMapOverlay.TileHeight = 512; openStreetMapOverlay.TileWidth = 512; openStreetMapOverlay.IsVisible = false; openStreetMapOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.OSMOverlayName); mapControl.Overlays.Add(openStreetMapOverlay); BingMapsOverlay bingMapsAerialOverlay = new BingMapsOverlay(); bingMapsAerialOverlay.Name = Resources.BingMapsAerialOverlayName; bingMapsAerialOverlay.TileHeight = 512; bingMapsAerialOverlay.TileWidth = 512; bingMapsAerialOverlay.MapType = Wpf.BingMapsMapType.Aerial; bingMapsAerialOverlay.IsVisible = false; bingMapsAerialOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.BingMapsAerialOverlayName); mapControl.Overlays.Add(bingMapsAerialOverlay); BingMapsOverlay bingMapsRoadOverlay = new BingMapsOverlay(); bingMapsRoadOverlay.Name = Resources.BingMapsRoadOverlayName; bingMapsRoadOverlay.TileHeight = 512; bingMapsRoadOverlay.TileWidth = 512; bingMapsRoadOverlay.MapType = Wpf.BingMapsMapType.Road; bingMapsRoadOverlay.IsVisible = false; bingMapsRoadOverlay.TileCache = new FileBitmapTileCache(cacheFolder, Resources.BingMapsRoadOverlayName); mapControl.Overlays.Add(bingMapsRoadOverlay); LayerOverlay styleLayersOverLay = new LayerOverlay(); styleLayersOverLay.TileType = TileType.SingleTile; mapControl.Overlays.Add(Resources.StyleLayerOverLayKey, styleLayersOverLay); Proj4Projection wgs84ToMercatorProjection = new Proj4Projection(); wgs84ToMercatorProjection.InternalProjectionParametersString = Proj4Projection.GetDecimalDegreesParametersString(); wgs84ToMercatorProjection.ExternalProjectionParametersString = Proj4Projection.GetSphericalMercatorParametersString(); EarthquakeHeatFeatureLayer heatLayer = new EarthquakeHeatFeatureLayer(new ShapeFileFeatureSource(ConfigurationManager.AppSettings["DataShapefileFileName"])); heatLayer.HeatStyle = new HeatStyle(10, 100, Resources.MagnitudeColumnName, 0, 12, 100, DistanceUnit.Kilometer); heatLayer.FeatureSource.Projection = wgs84ToMercatorProjection; heatLayer.Name = Resources.HeatStyleLayerName; styleLayersOverLay.Layers.Add(heatLayer); ShapeFileFeatureLayer pointLayer = new ShapeFileFeatureLayer(ConfigurationManager.AppSettings["DataShapefileFileName"]); pointLayer.FeatureSource.Projection = wgs84ToMercatorProjection; pointLayer.Name = Resources.PointStyleLayerName; pointLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.CreateSimpleCircleStyle(GeoColor.StandardColors.Red, 6, GeoColor.StandardColors.White, 1); pointLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; styleLayersOverLay.Layers.Add(pointLayer); EarthquakeIsoLineFeatureLayer isoLineLayer = new EarthquakeIsoLineFeatureLayer(new ShapeFileFeatureSource(ConfigurationManager.AppSettings["DataShapefileFileName"])); isoLineLayer.FeatureSource.Projection = wgs84ToMercatorProjection; isoLineLayer.Name = Resources.IsolineStyleLayerName; styleLayersOverLay.Layers.Add(isoLineLayer); //Setup TarckOverlay. mapControl.TrackOverlay = new RadiusMearsureTrackInteractiveOverlay(DistanceUnit.Mile, mapControl.MapUnit); mapControl.TrackOverlay.TrackEnded += TrackOverlay_TrackEnded; LayerOverlay markerOverlay = new LayerOverlay(); mapControl.Overlays.Add(Resources.MarkerOverlayKey, markerOverlay); PointStyle highLightStyle = new PointStyle(); highLightStyle.CustomPointStyles.Add(PointStyles.CreateSimpleCircleStyle(GeoColor.FromArgb(50, GeoColor.SimpleColors.Blue), 20, GeoColor.SimpleColors.LightBlue, 1)); highLightStyle.CustomPointStyles.Add(PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.LightBlue, 9, GeoColor.SimpleColors.Blue, 1)); markerMemoryLayer = new InMemoryFeatureLayer(); markerMemoryLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.CreateSimpleCircleStyle(GeoColor.SimpleColors.Orange, 8, GeoColor.SimpleColors.White, 1); markerMemoryLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; markerOverlay.Layers.Add(markerMemoryLayer); markerMemoryHighlightLayer = new InMemoryFeatureLayer(); markerMemoryHighlightLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = highLightStyle; markerMemoryHighlightLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; markerOverlay.Layers.Add(markerMemoryHighlightLayer); ScaleBarAdornmentLayer scaleBarAdornmentLayer = new ScaleBarAdornmentLayer(); scaleBarAdornmentLayer.UnitFamily = UnitSystem.Imperial; mapControl.AdornmentOverlay.Layers.Add(scaleBarAdornmentLayer); }