protected override void BuildIndexCore(FeatureLayer featureLayer) { lock (layersInBuildingIndex) { if (!layersInBuildingIndex.Contains(featureLayer)) { layersInBuildingIndex.Add(featureLayer); } } if (layersInBuildingIndex.Count > 0) { ShapeFileFeatureSource.BuildingIndex -= ShapeFileFeatureSource_BuildingIndex; ShapeFileFeatureSource.BuildingIndex += ShapeFileFeatureSource_BuildingIndex; } var uri = LayerPlugin.GetUri(featureLayer); if (uri != null) { ShapeFileFeatureLayer.BuildIndexFile(uri.LocalPath, BuildIndexMode.DoNotRebuild); lock (layersInBuildingIndex) { if (layersInBuildingIndex.Contains(featureLayer)) { layersInBuildingIndex.Remove(featureLayer); } if (layersInBuildingIndex.Count == 0) { ShapeFileFeatureSource.BuildingIndex -= new EventHandler <BuildingIndexShapeFileFeatureSourceEventArgs>(ShapeFileFeatureSource_BuildingIndex); } } } }
protected override void DrawCore(WinformsMap winformsMap) { LayerOverlay layerOverlay = null; if (!LoadingFromShapeFile) { layerOverlay = new LayerOverlay(); foreach (Layer layer in Layers) { layerOverlay.Layers.Add(layer); } } else { ShapeFileFeatureLayer.BuildIndexFile(ShapePathFileName, BuildIndexMode.DoNotRebuild); ShapeFileFeatureLayer shapeFileFeatureLayer = new ShapeFileFeatureLayer(ShapePathFileName); shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(102, 0, 0, 255), GeoColor.FromArgb(255, 0, 0, 255), 2); shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.FromArgb(102, 0, 0, 255), 2, true); shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.CreateSimpleCircleStyle(GeoColor.FromArgb(102, 0, 0, 255), 12); shapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; layerOverlay = new LayerOverlay(); layerOverlay.Layers.Add(shapeFileFeatureLayer); layerOverlay.Layers.Add(OutputFeatureLayer); winformsMap.CurrentExtent = GetBoundingBox(); } winformsMap.Overlays.Clear(); winformsMap.Overlays.Add(layerOverlay); winformsMap.Refresh(); }
public static void BuildIndex(ShapeFileFeatureLayer layer) { string sourceIdsPath = Path.ChangeExtension(layer.IndexPathFilename, ".ids"); if (layer.RequireIndex && File.Exists(layer.IndexPathFilename) && File.Exists(sourceIdsPath)) { lock (layer) { layer.Close(); layer.RequireIndex = false; layer.Open(); } } StatusBar.GetInstance().Cancelled += new EventHandler <CancelEventArgs>(BuildIndexFileDialog_Cancelled); ShapeFileFeatureSource.BuildingIndex += new EventHandler <BuildingIndexShapeFileFeatureSourceEventArgs>(ShapeFileFeatureSource_BuildingIndex); try { if (GisEditor.ActiveMap != null) { var closingOverlays = GisEditor.ActiveMap.Overlays.OfType <LayerOverlay>() .Where(tmpOverlay => tmpOverlay.Layers.OfType <ShapeFileFeatureLayer>() .Select(tmpLayer => tmpLayer.ShapePathFilename) .Contains(layer.ShapePathFilename)); Action action = new Action(() => { foreach (var closingOverlay in closingOverlays) { closingOverlay.Close(); } }); if (Application.Current == null) { action(); } else { Application.Current.Dispatcher.BeginInvoke(action); } } ShapeFileFeatureLayer.BuildIndexFile(layer.ShapePathFilename, BuildIndexMode.Rebuild); } finally { StatusBar.GetInstance().Cancelled -= new EventHandler <CancelEventArgs>(BuildIndexFileDialog_Cancelled); ShapeFileFeatureSource.BuildingIndex -= new EventHandler <BuildingIndexShapeFileFeatureSourceEventArgs>(ShapeFileFeatureSource_BuildingIndex); lock (layer) { layer.Close(); layer.RequireIndex = true; layer.Open(); } } }
private void BuildIndex() { if (files != null) { for (int i = 0; i < files.Count; i++) { ShapeFileFeatureLayer.BuildIndexFile(files[i], BuildIndexMode.Rebuild); progressBar1.PerformStep(); } } }
private void LoadStreetData() { winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.FromArgb(255, 233, 232, 214)); ShapeFileFeatureLayer ParksShapeLayer = new ShapeFileFeatureLayer(@"..\..\Data\parks.shp"); ShapeFileFeatureLayer.BuildIndexFile(@"..\..\Data\parks.shp", BuildIndexMode.DoNotRebuild); ParksShapeLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; ParksShapeLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.Park1; ShapeFileFeatureLayer ParksLabelLayer = new ShapeFileFeatureLayer(@"..\..\Data\parks.shp"); ParksLabelLayer.RequireIndex = false; ParksLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle = TextStyles.CreateSimpleTextStyle("Name", "Arial", 10, DrawingFontStyles.Bold, GeoColor.StandardColors.SeaGreen, GeoColor.StandardColors.White, 2); ParksLabelLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; ShapeFileFeatureLayer StreetsShapeLayer = new ShapeFileFeatureLayer(@"..\..\Data\streets.shp"); ShapeFileFeatureLayer.BuildIndexFile(@"..\..\Data\streets.shp", BuildIndexMode.DoNotRebuild); StreetsShapeLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; ValueStyle valueStyle = new ValueStyle(); valueStyle.ColumnName = "Type"; valueStyle.ValueItems.Add(new ValueItem("A", LineStyles.LocalRoad2)); valueStyle.ValueItems.Add(new ValueItem("M", LineStyles.MajorRoad1)); StreetsShapeLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(valueStyle); ShapeFileFeatureLayer StreetsLabelLayer = new ShapeFileFeatureLayer(@"..\..\Data\streets.shp"); StreetsLabelLayer.RequireIndex = false; TextStyle textStyle = new TextStyle(); textStyle.TextColumnName = "St_name"; textStyle.TextSolidBrush = new GeoSolidBrush(GeoColor.StandardColors.Black); textStyle.Font = new GeoFont("Arial", 7); textStyle.TextLineSegmentRatio = 10; textStyle.GridSize = 100; textStyle.SplineType = SplineType.StandardSplining; textStyle.DuplicateRule = LabelDuplicateRule.OneDuplicateLabelPerQuadrant; StreetsLabelLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(textStyle); StreetsLabelLayer.ZoomLevelSet.ZoomLevel01.DefaultTextStyle.GridSize = 5; StreetsLabelLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay staticOverlay = new LayerOverlay(); staticOverlay.Layers.Add("Parks", ParksShapeLayer); staticOverlay.Layers.Add("Streets", StreetsShapeLayer); staticOverlay.Layers.Add("Parks Labels", ParksLabelLayer); staticOverlay.Layers.Add("Streets Labels", StreetsLabelLayer); winformsMap1.Overlays.Add("Street Overlay", staticOverlay); }
/// <summary> /// Setup the map with the ThinkGeo Cloud Maps overlay. Also, add the cityLimits and scaledLayer layers /// into a grouped LayerOverlay and display them on the map. /// </summary> protected override void OnAppearing() { base.OnAppearing(); // Set the map's unit of measurement to meters(Spherical Mercator) mapView.MapUnit = GeographyUnit.Meter; ShapeFileFeatureLayer.BuildIndexFile(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Data/Shapefile/FriscoCityLimits.shp")); // Add Cloud Maps as a background overlay var 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); ShapeFileFeatureLayer cityLimits = new ShapeFileFeatureLayer(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "Data/Shapefile/FriscoCityLimits.shp")); InMemoryFeatureLayer scaledLayer = new InMemoryFeatureLayer(); LayerOverlay layerOverlay = new LayerOverlay(); // 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 scaledLayer scaledLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyle.CreateSimpleAreaStyle(new GeoColor(32, GeoColors.Green), GeoColors.DimGray); scaledLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Add cityLimits layer to a LayerOverlay layerOverlay.Layers.Add("cityLimits", cityLimits); // Add scaledLayer to the layerOverlay layerOverlay.Layers.Add("scaledLayer", scaledLayer); // 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", layerOverlay); mapView.Refresh(); }
public void BuildIndex() { ShapeFileFeatureSource.BuildingIndex += ShapeFileFeatureSource_BuildingIndex; ShapeFileFeatureLayer.BuildIndexFile(FilePath, BuildIndexMode.Rebuild); ShapeFileFeatureSource.BuildingIndex -= ShapeFileFeatureSource_BuildingIndex; string tempTargetIdxPath = Path.ChangeExtension(FilePath, "_tmp.idx"); string tempTargetIdsPath = Path.ChangeExtension(FilePath, "_tmp.ids"); if (File.Exists(tempTargetIdxPath)) { File.Delete(tempTargetIdxPath); } if (File.Exists(tempTargetIdsPath)) { File.Delete(tempTargetIdsPath); } }
private void Form_Load(object sender, EventArgs e) { // Set the map's unit of measurement to meters(Spherical Mercator) mapView.MapUnit = GeographyUnit.Meter; ShapeFileFeatureLayer.BuildIndexFile(@"../../../Data/Shapefile/FriscoCityLimits.shp"); // Add Cloud Maps as a background overlay var thinkGeoCloudVectorMapsOverlay = new ThinkGeoCloudVectorMapsOverlay("itZGOI8oafZwmtxP-XGiMvfWJPPc-dX35DmESmLlQIU~", "bcaCzPpmOG6le2pUz5EAaEKYI-KSMny_WxEAe7gMNQgGeN9sqL12OA~~", ThinkGeoCloudVectorMapsMapType.Light); mapView.Overlays.Add(thinkGeoCloudVectorMapsOverlay); ShapeFileFeatureLayer cityLimits = new ShapeFileFeatureLayer(@"../../../Data/Shapefile/FriscoCityLimits.shp"); InMemoryFeatureLayer scaledLayer = new InMemoryFeatureLayer(); LayerOverlay layerOverlay = new LayerOverlay(); // 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 scaledLayer scaledLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyle.CreateSimpleAreaStyle(new GeoColor(32, GeoColors.Green), GeoColors.DimGray); scaledLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; // Add cityLimits layer to a LayerOverlay layerOverlay.Layers.Add("cityLimits", cityLimits); // Add scaledLayer to the layerOverlay layerOverlay.Layers.Add("scaledLayer", scaledLayer); // 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", layerOverlay); }
protected override void DrawCore(WinformsMap winformsMap) { LayerOverlay layerOverlay = new LayerOverlay(); if (!LoadingFromShapeFile) { foreach (var item in Layers) { layerOverlay.Layers.Add(item); } } else { if (!String.IsNullOrEmpty(firstShapeFilePathName)) { ShapeFileFeatureLayer.BuildIndexFile(firstShapeFilePathName, BuildIndexMode.DoNotRebuild); ShapeFileFeatureLayer firstInputShapeFileFeatureLayer = new ShapeFileFeatureLayer(firstShapeFilePathName); firstInputShapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(102, 0, 255, 0), GeoColor.FromArgb(255, 0, 255, 0), 2); firstInputShapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.FromArgb(102, 0, 255, 0), 2, true); firstInputShapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.CreateSimpleCircleStyle(GeoColor.FromArgb(102, 0, 255, 0), 12); firstInputShapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; layerOverlay.Layers.Add(firstInputShapeFileFeatureLayer); } if (!String.IsNullOrEmpty(secondShapeFilePathName)) { ShapeFileFeatureLayer.BuildIndexFile(secondShapeFilePathName, BuildIndexMode.DoNotRebuild); ShapeFileFeatureLayer secondInputShapeFileFeatureLayer = new ShapeFileFeatureLayer(secondShapeFilePathName); secondInputShapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultAreaStyle = AreaStyles.CreateSimpleAreaStyle(GeoColor.FromArgb(102, 0, 0, 255), GeoColor.FromArgb(255, 0, 0, 255), 2); secondInputShapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = LineStyles.CreateSimpleLineStyle(GeoColor.FromArgb(102, 0, 0, 255), 2, true); secondInputShapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = PointStyles.CreateSimpleCircleStyle(GeoColor.FromArgb(102, 0, 0, 255), 12); secondInputShapeFileFeatureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; layerOverlay.Layers.Add(secondInputShapeFileFeatureLayer); } layerOverlay.Layers.Add(OutputFeatureLayer); } winformsMap.Overlays.Clear(); winformsMap.Overlays.Add(layerOverlay); winformsMap.Refresh(); }
private void buildSpatialIndex_Click(object sender, EventArgs e) { ShapeFileFeatureLayer.BuildIndexFile(Samples.RootDirectory + @"Data\Countries02.shp", BuildIndexMode.DoNotRebuild); MessageBox.Show("Finish building spatial index.", "BuildIndexFile", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0); }
private void buildSpatialIndex_Click(object sender, RoutedEventArgs e) { ShapeFileFeatureLayer.BuildIndexFile(SampleHelper.Get("Countries02_3857.shp"), BuildIndexMode.DoNotRebuild); MessageBox.Show("Finish building spatial index.", "BuildIndexFile", MessageBoxButton.OK, MessageBoxImage.Information, MessageBoxResult.OK, MessageBoxOptions.None); }
public string Spatial(Map map, GeoCollection <object> args) { ShapeFileFeatureLayer.BuildIndexFile(Server.MapPath("~/App_Data/cntry02.shp"), BuildIndexMode.DoNotRebuild); return("Finish building spatial index. <br/>The index file is <b>" + Server.MapPath("~/App_Data/cntry02.idx") + "</b>"); }