private void btnRoute_Click(object sender, EventArgs e) { ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(@"..\..\SampleData\Austinstreets.shp"); RoutingSource routingSource = new RtgRoutingSource(@"..\..\SampleData\routeDataForFastest.rtg"); RoutingEngine routingEngine = new RoutingEngine(routingSource, featureSource); RoutingResult routingResult = routingEngine.GetShortestPath(txtStartId.Text, txtEndId.Text); InMemoryFeatureLayer routingLayer = (InMemoryFeatureLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; winformsMap1.Overlays["RoutingOverlay"].Lock.EnterWriteLock(); try { routingLayer.InternalFeatures.Clear(); foreach (Feature feature in routingResult.Features) { routingLayer.InternalFeatures.Add(feature); } } finally { winformsMap1.Overlays["RoutingOverlay"].Lock.ExitWriteLock(); } winformsMap1.Refresh(); }
// // GET: /LoadAHeatLayer/ public ActionResult LoadAHeatLayer() { Map map = new Map("Map1", new System.Web.UI.WebControls.Unit(100, System.Web.UI.WebControls.UnitType.Percentage), new System.Web.UI.WebControls.Unit(100, System.Web.UI.WebControls.UnitType.Percentage)); map.MapBackground = new GeoSolidBrush(GeoColor.FromHtml("#E5E3DF")); map.CurrentExtent = new RectangleShape(-91.88, 43.17, -69.88, 29.86); map.MapUnit = GeographyUnit.DecimalDegree; WorldMapKitWmsWebOverlay worldMapKitOverlay = new WorldMapKitWmsWebOverlay(); map.CustomOverlays.Add(worldMapKitOverlay); //Shapefile Containing historical earthquake data ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(Server.MapPath("~/App_Data/quksigx020.shp")); featureSource.CustomColumnFetch += new EventHandler <CustomColumnFetchEventArgs>(featureSource_CustomColumnFetch); HeatLayer heatLayer = new HeatLayer(featureSource); heatLayer.HeatStyle = new HeatStyle(180, "EarthQuakeMagnitude", 0, 12); LayerOverlay staticOverlay = new LayerOverlay(); staticOverlay.IsBaseOverlay = false; staticOverlay.Layers.Add(heatLayer); map.CustomOverlays.Add(staticOverlay); return(View(map)); }
public override void ViewDidLoad() { base.ViewDidLoad(); mapView = new MapView(View.Frame); View.Add(mapView); ComposeTableControl(); mapView.MapUnit = GeographyUnit.Meter; mapView.ZoomLevelSet = ThinkGeoCloudMapsOverlay.GetZoomLevelSet(); mapView.MapSingleTap += MapViewMapSingleTap; ThinkGeoCloudMapsOverlay thinkGeoCloudMapsOverlay = new ThinkGeoCloudMapsOverlay(); mapView.Overlays.Add(thinkGeoCloudMapsOverlay); layerOverlay = new LayerOverlay(); routingLayer = new RoutingLayer(); layerOverlay.Layers.Add(routingLayer); mapView.Overlays.Add(layerOverlay); string shapeFilePath = Path.Combine("AppData", "DallasCounty-3857.shp"); string rtgPath = Path.Combine("AppData", "DallasCounty-3857.rtg"); var routingSource = new RtgRoutingSource(rtgPath); var featureSource = new ShapeFileFeatureSource(shapeFilePath); routingEngine = new RoutingEngine(routingSource, featureSource); routingEngine.GeographyUnit = GeographyUnit.Meter; routingEngine.SearchRadiusInMeters = 200; mapView.CurrentExtent = new RectangleShape(-10781100.2970769, 3875007.18710502, -10767407.8727504, 3854947.78546675); mapView.Refresh(); }
private void RenderMap() { winformsMap1.MapUnit = GeographyUnit.DecimalDegree; winformsMap1.CurrentExtent = new RectangleShape(-96.905564, 32.926216, -96.651506, 32.744942); //WorldMapKitWmsDesktopOverlay worldMapKitsOverlay = new WorldMapKitWmsDesktopOverlay(); //winformsMap1.Overlays.Add(worldMapKitsOverlay); ShapeFileFeatureLayer featureLayer = new ShapeFileFeatureLayer(Path.Combine(rootPath, "DallasCounty-4326.shp")); featureLayer.ZoomLevelSet.ZoomLevel01.DefaultLineStyle = new LineStyle(new GeoPen(GeoColors.LightGray, 1)); featureLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp")); featureSource.Open(); RoutingLayer routingLayer = new RoutingLayer(); routingLayer.StartPoint = featureSource.GetFeatureById(txtStartId.Text, ReturningColumnsType.NoColumns).GetShape().GetCenterPoint(); routingLayer.EndPoint = featureSource.GetFeatureById(txtEndId.Text, ReturningColumnsType.NoColumns).GetShape().GetCenterPoint(); LayerOverlay routingOverlay = new LayerOverlay(); routingOverlay.Layers.Add("afda", featureLayer); 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(); }
protected override BaseShape CreateAccessibleAreaCore() { string rtgFilePathName = Path.ChangeExtension(StreetShapeFilePathName, ".rtg"); RtgRoutingSource routingSource = new RtgRoutingSource(rtgFilePathName); FeatureSource featureSource = new ShapeFileFeatureSource(StreetShapeFilePathName); RoutingEngine routingEngine = new RoutingEngine(routingSource, featureSource); if (!featureSource.IsOpen) { featureSource.Open(); } ManagedProj4Projection proj = new ManagedProj4Projection(); proj.InternalProjectionParametersString = ManagedProj4Projection.GetBingMapParametersString(); proj.ExternalProjectionParametersString = ManagedProj4Projection.GetEpsgParametersString(4326); proj.Open(); StartLocation = proj.ConvertToExternalProjection(StartLocation) as PointShape; Feature feature = featureSource.GetFeaturesNearestTo(StartLocation, GeographyUnit, 1, ReturningColumnsType.NoColumns)[0]; PolygonShape polygonShape = routingEngine.GenerateServiceArea(feature.Id, new TimeSpan(0, DrivingTimeInMinutes, 0), 100, GeographyUnit.Feet); polygonShape = proj.ConvertToInternalProjection(polygonShape) as PolygonShape; proj.Close(); return(polygonShape); }
private void Route() { FeatureSource featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp")); RoutingSource routingSource = new RtgRoutingSource(Path.Combine(rootPath, "DallasCounty-4326.shortest.rtg")); RoutingEngine routingEngine = new RoutingEngine(routingSource, featureSource); RoutingLayer routingLayer = (RoutingLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; Collection <LineShape> paths = new Collection <LineShape>(); if (cbxAddStop.Checked) { paths.Add(routingEngine.GetRoute(routingLayer.StartPoint, routingLayer.StopPoints[0]).Route); paths.Add(routingEngine.GetRoute(routingLayer.StopPoints[0], routingLayer.EndPoint).Route); } else { paths.Add(routingEngine.GetRoute(routingLayer.StartPoint, routingLayer.EndPoint).Route); } RoutingLayer inmemoryLayer = (RoutingLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; inmemoryLayer.Routes.Clear(); foreach (LineShape item in paths) { inmemoryLayer.Routes.Add(item); } }
// // GET: /ExecuteSqlQuery/ public ActionResult ExecuteSqlQuery() { Collection <Country> countries = new Collection <Country>(); if (HttpContext.Request.QueryString.Count > 0) { string sql = ControllerContext.HttpContext.Request.Form["SQLTextBox"].ToString().ToLowerInvariant(); ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(Server.MapPath("~/App_Data/cntry02.shp")); featureSource.Open(); DataTable dataTable = featureSource.ExecuteQuery(sql); featureSource.Close(); foreach (DataRow row in dataTable.Rows) { Country country = new Country(); country.CountryName = row["cntry_name"].ToString(); country.Population = row["pop_cntry"].ToString(); countries.Add(country); } } return(View(countries)); }
public void ForEachFeatures(ShapeFileFeatureSource featureSource, Func <Feature, int, int, int, bool> process) { if (!featureSource.IsOpen) { featureSource.Open(); } int currentProgress = 0; int currentFeatureCount = featureSource.GetCount(); for (int i = 0; i < currentFeatureCount; i++) { var currentFeature = featureSource.GetFeatureById((i + 1).ToString(), featureSource.GetDistinctColumnNames()); if (process != null) { currentProgress++; var currentPercentage = currentProgress * 100 / currentFeatureCount; var canceled = process(currentFeature, currentProgress, currentFeatureCount, currentPercentage); if (canceled) { break; } } } }
private void btnRaiseEvent_Click(object sender, EventArgs e) { cancel = false; gbProgress.Visible = true; processedCount = 0; pgBuildingData.Minimum = 0; pgBuildingData.Value = 0; ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp")); featureSource.Open(); pgBuildingData.Maximum = featureSource.GetCount(); lbTotalCount.Text = pgBuildingData.Maximum.ToString(CultureInfo.InvariantCulture); featureSource.Close(); RtgRoutingSource.GenerateRoutingData(Path.Combine(rootPath, "BuildingRoutingDataEvent.rtg"), featureSource, BuildRoutingDataMode.Rebuild, "DallasCounty-4326.shp"); if (cancel) { MessageBox.Show("Building routing data has been cancelled!"); } else { MessageBox.Show("Finish building routing data!"); } gbProgress.Visible = false; }
private void InitalizeMap() { mapView.MapUnit = GeographyUnit.Meter; mapView.ZoomLevelSet = new ThinkGeoCloudMapsZoomLevelSet(); mapView.SingleTap += MapView_SingleTap; // Please input your ThinkGeo Cloud Client ID / Client Secret to enable the background map. ThinkGeoCloudRasterMapsOverlay baseOverlay = new ThinkGeoCloudRasterMapsOverlay("ThinkGeo Cloud Client ID", "ThinkGeo Cloud Client Secret"); mapView.Overlays.Add(baseOverlay); layerOverlay = new LayerOverlay(); routingLayer = new RoutingLayer(); layerOverlay.Layers.Add(routingLayer); mapView.Overlays.Add(layerOverlay); var routingSource = new RtgRoutingSource(DataManager.GetDataPath("DallasCounty-3857.rtg")); var featureSource = new ShapeFileFeatureSource(DataManager.GetDataPath("DallasCounty-3857.shp")); routingEngine = new RoutingEngine(routingSource, featureSource); routingEngine.GeographyUnit = GeographyUnit.Meter; routingEngine.SearchRadiusInMeters = 100; mapView.CurrentExtent = new RectangleShape(-10781100.2970769, 3875007.18710502, -10767407.8727504, 3854947.78546675); }
private void RenderMap() { winformsMap1.MapUnit = GeographyUnit.Meter; winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#e6e5d1")); winformsMap1.CurrentExtent = new RectangleShape(-10787478.039515, 3885514.4616168, -10759196.432323, 3861498.009642); GoogleMapsOverlay googleMapsOverlay = new GoogleMapsOverlay(); googleMapsOverlay.TileCache = new FileBitmapTileCache("C:\\ImageCache"); winformsMap1.Overlays.Add(googleMapsOverlay); ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-3857.shp")); featureSource.Open(); RoutingLayer routingLayer = new RoutingLayer(); routingLayer.StartPoint = featureSource.GetFeatureById(txtStartId.Text, ReturningColumnsType.NoColumns).GetShape().GetCenterPoint(); routingLayer.EndPoint = featureSource.GetFeatureById(txtEndId.Text, ReturningColumnsType.NoColumns).GetShape().GetCenterPoint(); 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(-10806916.7603168, 3897094.80494128, -10738458.3904247, 3827820.76830281))); routingOverlay.Layers.Add("RoutingExtentLayer", routingExtentLayer); winformsMap1.Refresh(); }
protected override TaskPlugin GetTaskPluginCore() { FeatureSource featureSource = null; if (DissolveSelectedFeaturesOnly) { SaveSelectedFeaturesToTempFile(); featureSource = new ShapeFileFeatureSource(tempFilePath); } else { if (SelectedFeatureLayer.FeatureSource.IsOpen) { SelectedFeatureLayer.FeatureSource.Close(); } featureSource = SelectedFeatureLayer.FeatureSource; } var plugin = GisEditor.TaskManager.GetActiveTaskPlugins <DissolveTaskPlugin>().FirstOrDefault(); if (plugin != null) { InitializePlugin(plugin, featureSource); } return(plugin); }
private void UserControl_Load(object sender, EventArgs e) { ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp")); RoutingSourceForShortest = new RtgRoutingSource(Path.Combine(rootPath, "DallasCounty-4326.rtg")); routingEngine = new RoutingEngine(RoutingSourceForShortest, featureSource); RenderMap(); }
/// <summary> /// If the IDX file does not exists, we create it. /// </summary> /// <param name="layer"></param> public static void RebuildIndexFile(ShapeFileFeatureLayer layer) { try { ShapeFileFeatureSource.BuildIndexFile(layer.ShapePathFileName, BuildIndexMode.Rebuild); } catch (IOException ioException) { } }
private void btnGenerateRoadData_Click(object sender, EventArgs e) { MessageBox.Show("Finish building routing data!"); return; RtgRoutingSource.BuildingRoadData += new EventHandler <BuildingRoutingDataRtgRoutingSourceEventArgs>(RtgRoutingSource_BuildingRoadData); ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(@"..\..\SampleData\Austinstreets.shp"); RtgRoutingSource.GenerateRoutingData(@"..\..\SampleData\routeDataForFastest.rtg", featureSource, "Austinstreets.shp"); }
static void Main(string[] args) { ShapeFileFeatureSource sourceData = new ShapeFileFeatureSource(@"..\..\Data\Roads.shp"); StreamSource source = new StreamSource(); Stopwatch watch = Stopwatch.StartNew(); RoadNetwork netWork = source.CreateNetwork(sourceData); watch.Stop(); Console.WriteLine(String.Format("The total cost:{0} Minutes, Nodes' count is {1}", watch.ElapsedMilliseconds / 1000 / 60, netWork.Nodes.Count)); Console.Read(); }
static void Main(string[] args) { ShapeFileFeatureSource sourceData = new ShapeFileFeatureSource(@"..\..\Data\Roads.shp"); StreamSource source = new StreamSource(); Stopwatch watch = Stopwatch.StartNew(); RoadNetwork netWork = source.CreateNetwork(sourceData); watch.Stop(); Console.WriteLine(String.Format("The total cost:{0} Minutes, Nodes' count is {1}", watch.ElapsedMilliseconds / 1000 / 60, netWork.Nodes.Count)); Console.Read(); }
private static DynamicIsoLineLayer GetDynamicIsoLineLayer() { // Define the colors for different earthquake magnitude. Collection <GeoColor> colorsOfMagnitude = new Collection <GeoColor>() { GeoColor.FromHtml("#FFFFBE"), GeoColor.FromHtml("#FDFF9E"), GeoColor.FromHtml("#FDFF37"), GeoColor.FromHtml("#FDDA04"), GeoColor.FromHtml("#FFA701"), GeoColor.FromHtml("#FF6F02"), GeoColor.FromHtml("#EC0000"), GeoColor.FromHtml("#B90000"), GeoColor.FromHtml("#850100"), GeoColor.FromHtml("#620001"), GeoColor.FromHtml("#450005"), GeoColor.FromHtml("#2B0804") }; // Get the file path name from its relative path. string shpFilePathName = GetFullPath("App_Data/usEarthquake.shp"); // Create the layer for IsoLine. ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(shpFilePathName); Dictionary <PointShape, double> dataPoints = GetDataPoints(featureSource); GridInterpolationModel interpolationModel = new InverseDistanceWeightedGridInterpolationModel(3, double.MaxValue); DynamicIsoLineLayer isoLineLayer = new DynamicIsoLineLayer(dataPoints, GetClassBreakValues(dataPoints.Values, 12), interpolationModel, IsoLineType.ClosedLinesAsPolygons); // Create the style for different level of earthquake magnitude. ClassBreakStyle earthquakeMagnitudeBreakStyle = new ClassBreakStyle(isoLineLayer.DataValueColumnName); earthquakeMagnitudeBreakStyle.ClassBreaks.Add(new ClassBreak(double.MinValue, new AreaStyle(new GeoPen(GeoColor.FromHtml("#FE6B06"), 1), new GeoSolidBrush(new GeoColor(100, colorsOfMagnitude[0]))))); for (int i = 0; i < isoLineLayer.IsoLineLevels.Count - 1; i++) { earthquakeMagnitudeBreakStyle.ClassBreaks.Add(new ClassBreak(isoLineLayer.IsoLineLevels[i + 1], new AreaStyle(new GeoPen(GeoColor.FromHtml("#FE6B06"), 1), new GeoSolidBrush(new GeoColor(100, colorsOfMagnitude[i + 1]))))); } isoLineLayer.CustomStyles.Add(earthquakeMagnitudeBreakStyle); TextStyle textStyle = TextStyles.CreateSimpleTextStyle(isoLineLayer.DataValueColumnName, "Arial", 8, DrawingFontStyles.Bold, GeoColor.StandardColors.Black, 0, 0); textStyle.HaloPen = new GeoPen(GeoColor.StandardColors.White, 2); textStyle.OverlappingRule = LabelOverlappingRule.NoOverlapping; textStyle.SplineType = SplineType.StandardSplining; textStyle.DuplicateRule = LabelDuplicateRule.UnlimitedDuplicateLabels; textStyle.TextLineSegmentRatio = 9999999; textStyle.FittingLineInScreen = true; textStyle.SuppressPartialLabels = true; textStyle.NumericFormat = "{0:0.00}"; isoLineLayer.CustomStyles.Add(textStyle); return(isoLineLayer); }
private void UserControl_Load(object sender, EventArgs e) { featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp")); routingSource = new RtgRoutingSource(Path.Combine(rootPath, "DallasCounty-4326.shortest.rtg")); routingEngine = new RoutingEngine(routingSource, featureSource); featureSource.Open(); routingSource.Open(); isInEditMode = false; RenderMap(); }
private void UserControl_Load(object sender, EventArgs e) { RenderMap(); ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(shapeFilePathName); RoutingSourceForShortest = new RtgRoutingSource(shortestRtgFilePathName); RoutingSourceForFastest = new RtgRoutingSource(fastestRtgFilePathName); routingEngine = new RoutingEngine(RoutingSourceForShortest, featureSource); // Search the route between default source and target. FindPath(); }
private void UserControl_Load(object sender, EventArgs e) { ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-3857.shp")); RoutingSourceForShortest = new RtgRoutingSource(Path.Combine(rootPath, "DallasCounty-3857.shortest.rtg")); RoutingSourceForFastest = new RtgRoutingSource(Path.Combine(rootPath, "DallasCounty-3857.fastest.rtg")); routingEngine = new RoutingEngine(RoutingSourceForShortest, featureSource); routingEngine.GeographyUnit = GeographyUnit.Meter; RenderMap(); FindPath(); }
private void UserControl_Load(object sender, EventArgs e) { featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp")); routingSource = new RtgRoutingSource(Path.Combine(rootPath, "DallasCounty-4326.shortest.rtg")); routingEngine = new RoutingEngine(routingSource, featureSource); routingEngine.RoutingAlgorithm.FindingRoute += new EventHandler <FindingRouteRoutingAlgorithmEventArgs>(RoutingAlgorithm_FindingRoute); isAddingRoadblocks = false; avoidableFeatureIds = new Collection <string>(); RenderMap(); Route(); }
private void btnGenerateRoadData_Click(object sender, EventArgs e) { // Please uncomment the code below to disassemble the shapefile // RoutingHelper.GenerateRoutableShapeFile(@"..\..\SampleData\Edmonton.shp", @"..\..\SampleData\RoutableEdmonton.shp"); ShapeFileFeatureSource disassembledFeatureSource = new ShapeFileFeatureSource(@"..\..\SampleData\RoutableEdmonton.shp"); disassembledFeatureSource.Open(); lbDisassebledCount.Text = disassembledFeatureSource.GetCount().ToString(CultureInfo.InvariantCulture); disassembledFeatureSource.Close(); MessageBox.Show("Finish building routing data!"); }
private void btnRoute_Click(object sender, EventArgs e) { RoutingSource routingSource = new RtgRoutingSource(Path.Combine(rootPath, "DallasCounty-4326.shortest.rtg")); ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp")); RoutingEngine routingEngine = new RoutingEngine(routingSource, featureSource); RoutingLayer routingLayer = (RoutingLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; RoutingResult routingResult = routingEngine.GetRoute(routingLayer.StartPoint, routingLayer.EndPoint); routingLayer.Routes.Clear(); routingLayer.Routes.Add(routingResult.Route); winformsMap1.Refresh(winformsMap1.Overlays["RoutingOverlay"]); }
protected override TaskPlugin GetTaskPluginCore() { OutputShapeFileNames.Clear(); OverlaysToRefresh.Clear(); FeatureSource featureSource = null; if (UseSelectedFeaturesOnly) { SaveSelectedFeaturesToTempFile(); featureSource = new ShapeFileFeatureSource(tempFilePath); } else { featureSource = SelectedLayerToSplit.FeatureSource; } if (featureSource.IsOpen) { featureSource.Close(); if (featureSource.Projection != null) { featureSource.Projection.Close(); } } Dictionary <string, string> exportConfigs = new Dictionary <string, string>(); var plugin = GisEditor.TaskManager.GetActiveTaskPlugins <SplitTaskPlugin>().FirstOrDefault(); if (plugin != null) { InitializePlugin(plugin, featureSource, exportConfigs); } var configsNeedToExport = ExportConfiguration.Where(config => config.NeedsToExport); foreach (var item in configsNeedToExport) { string finalShapeFilePath = Path.Combine(OutputPath, item.OutputFileName + ".shp"); if (File.Exists(finalShapeFilePath) && overwriteOutputFiles) { CloseExistingLayersAndCollectOverlaysToRefresh(finalShapeFilePath); } OutputShapeFileNames.Add(finalShapeFilePath); exportConfigs.Add(item.ColumnValue, item.OutputFileName + ".shp"); } return(plugin); }
public static void CheckIndexFile(FileInfo shapefileInfo) { try { string indexFileName = shapefileInfo.FullName.Replace(".shp", ".idx"); if (!File.Exists(indexFileName)) { ShapeFileFeatureSource.BuildIndexFile(shapefileInfo.FullName, BuildIndexMode.Rebuild); } } catch (Exception) { } }
void cbmAlgorithm_SelectedIndexChanged(object sender, EventArgs e) { FeatureSource featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp")); RoutingSource routingSource = new RtgRoutingSource(Path.Combine(rootPath, "DallasCounty-4326.shortest.rtg")); RoutingEngine routingEngine = new RoutingEngine(routingSource, GetAlgorithm(), featureSource); RoutingResult routingResult = routingEngine.GetRoute(txtStartId.Text, txtEndId.Text); RoutingLayer routingLayer = (RoutingLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; routingLayer.Routes.Clear(); routingLayer.Routes.Add(routingResult.Route); winformsMap1.Refresh(winformsMap1.Overlays["RoutingOverlay"]); }
private void btnRoute_Click(object sender, EventArgs e) { ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp")); RoutingSource routingSource = new CustomRoutingSource(featureSource); RoutingEngine routingEngine = new RoutingEngine(routingSource, featureSource); RoutingResult routingResult = routingEngine.GetRoute(txtStartId.Text, txtEndId.Text); RoutingLayer routingLayer = (RoutingLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; routingLayer.Routes.Clear(); routingLayer.Routes.Add(routingResult.Route); winformsMap1.Refresh(winformsMap1.Overlays["RoutingOverlay"]); }
private void PrepareTaskParameters(BufferTaskPlugin plugin) { FeatureSource featureSource = null; if (CurrentLayerHasSelectedFeatures && OnlyBufferSelectedFeatures) { ShapeFileExporter shpExporter = new ShapeFileExporter(); string projectionInWKT = Proj4Projection.ConvertProj4ToPrj(GisEditor.ActiveMap.DisplayProjectionParameters); if (GisEditor.SelectionManager.GetSelectionOverlay() != null) { var features = GisEditor.SelectionManager.GetSelectionOverlay().HighlightFeatureLayer .InternalFeatures.Where(f => f.Tag == SelectedFeatureLayer); FileExportInfo info = new FileExportInfo(features, GetColumns(), tempShpFilePath, projectionInWKT); shpExporter.ExportToFile(info); } featureSource = new ShapeFileFeatureSource(tempShpFilePath); } else { featureSource = SelectedFeatureLayer.FeatureSource; } if (featureSource.IsOpen) { featureSource.Close(); } if (OutputMode == OutputMode.ToFile) { plugin.OutputPathFileName = OutputPathFileName; } else { string tempPathFileName = Path.Combine(FolderHelper.GetCurrentProjectTaskResultFolder(), TempFileName) + ".shp"; plugin.OutputPathFileName = tempPathFileName; OutputPathFileName = tempPathFileName; } plugin.FeatureSource = featureSource; plugin.Distance = Distance; plugin.Smoothness = Smoothness; plugin.Capstyle = CapStyle; plugin.MapUnit = GisEditor.ActiveMap.MapUnit; plugin.DistanceUnit = SelectedDistanceUnit; plugin.DisplayProjectionParameters = GisEditor.ActiveMap.DisplayProjectionParameters; plugin.Dissolve = NeedDissolve; }
private void RenderPathBetweenPoints() { FeatureSource featureSource = new ShapeFileFeatureSource(@"..\..\SampleData\Austinstreets.shp"); RoutingSource routingSource = new RtgRoutingSource(@"..\..\SampleData\Austinstreets.rtg"); RoutingEngine routingEngine = new RoutingEngine(routingSource, featureSource); RoutingResult routingResult = null; InMemoryFeatureLayer stopLayer = (InMemoryFeatureLayer)((LayerOverlay)winformsMap1.Overlays["StopOverlay"]).Layers["StopLayer"]; if (stopLayer.InternalFeatures.Count > 2) { string startId = stopLayer.InternalFeatures[0].Id; string stopId = stopLayer.InternalFeatures[1].Id; string endId = stopLayer.InternalFeatures[2].Id; routingResult = routingEngine.GetRoute(startId, stopId); RoutingResult secondRoutingResult = routingEngine.GetRoute(stopId, endId); foreach (Feature item in secondRoutingResult.Features) { routingResult.Features.Add(item); } } else { routingResult = routingEngine.GetRoute("4716", "9638"); } //winformsMap1.Overlays["RoutingOverlay"].Lock.EnterWriteLock(); //try //{ InMemoryFeatureLayer inmemoryLayer = (InMemoryFeatureLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"]; inmemoryLayer.InternalFeatures.Clear(); foreach (Feature feature in routingResult.Features) { inmemoryLayer.InternalFeatures.Add(feature); } //} //finally //{ // winformsMap1.Overlays["RoutingOverlay"].Lock.ExitWriteLock(); //} winformsMap1.Overlays["RoutingOverlay"].Lock.IsDirty = true; winformsMap1.Refresh(); }
private void RenderMap() { winformsMap1.MapUnit = GeographyUnit.DecimalDegree; winformsMap1.BackgroundOverlay.BackgroundBrush = new GeoSolidBrush(GeoColor.FromHtml("#e6e5d1")); winformsMap1.CurrentExtent = new RectangleShape(-96.905564, 32.926216, -96.651506, 32.744942); WorldStreetsAndImageryOverlay worldStreetsAndImageryOverlay = new WorldStreetsAndImageryOverlay(); winformsMap1.Overlays.Add(worldStreetsAndImageryOverlay); ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp")); featureSource.Open(); RoutingLayer routingLayer = new RoutingLayer(); routingLayer.StartPoint = featureSource.GetFeatureById(txtStartId.Text, ReturningColumnsType.NoColumns).GetShape().GetCenterPoint(); routingLayer.EndPoint = featureSource.GetFeatureById(txtEndId.Text, ReturningColumnsType.NoColumns).GetShape().GetCenterPoint(); LayerOverlay routingOverlay = new LayerOverlay(); routingOverlay.Layers.Add("RoutingLayer", routingLayer); winformsMap1.Overlays.Add("RoutingOverlay", routingOverlay); ShapeFileFeatureLayer poiLayer = new ShapeFileFeatureLayer(Path.Combine(rootPath, "poi.shp")); MemoryStream stream = new MemoryStream(); Properties.Resources.Station.Save(stream, ImageFormat.Png); poiLayer.ZoomLevelSet.ZoomLevel01.DefaultPointStyle = new PointStyle(new GeoImage(stream)); poiLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20; LayerOverlay poiOverlay = new LayerOverlay(); poiOverlay.Layers.Add("POIlayer", poiLayer); winformsMap1.Overlays.Add("POIoverlay", poiOverlay); 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 WpfMap_Loaded(object sender, RoutedEventArgs e) { wpfMap1.MapUnit = GeographyUnit.DecimalDegree; wpfMap1.MapTools.MouseCoordinate.IsEnabled = true; wpfMap1.CurrentExtent = new RectangleShape(-126.4, 48.8, -67.0, 19.0); wpfMap1.MaximumScale = 36911986.875; WorldMapKitWmsWpfOverlay worldMapKitOverlay = new WorldMapKitWmsWpfOverlay(); wpfMap1.Overlays.Add(worldMapKitOverlay); ShapeFileFeatureSource featureSource = new ShapeFileFeatureSource(@"..\..\SampleData\Data\cities_e.shp"); HeatLayer heatLayer = new HeatLayer(featureSource); heatLayer.HeatStyle = new HeatStyle(10, 75, DistanceUnit.Kilometer); LayerOverlay layerOverlay = new LayerOverlay(); layerOverlay.TransitionEffect = TransitionEffect.None; layerOverlay.Layers.Add(heatLayer); layerOverlay.OverlayCanvas.Opacity = .8; wpfMap1.Overlays.Add(layerOverlay); wpfMap1.Refresh(); }
public EarthquakeIsoLineFeatureLayer(ShapeFileFeatureSource featureSource) { FeatureSource = featureSource; }