Ejemplo n.º 1
0
        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();
        }
Ejemplo n.º 2
0
        //
        // 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));
        }
Ejemplo n.º 3
0
        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();
        }
Ejemplo n.º 4
0
        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();
        }
Ejemplo n.º 5
0
        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);
        }
Ejemplo n.º 6
0
        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);
            }
        }
Ejemplo n.º 7
0
        //
        // 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;
                    }
                }
            }
        }
Ejemplo n.º 9
0
        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;
        }
Ejemplo n.º 10
0
        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);
        }
Ejemplo n.º 11
0
        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();
        }
Ejemplo n.º 12
0
        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);
        }
Ejemplo n.º 13
0
        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();
        }
Ejemplo n.º 14
0
 /// <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)
     {
     }
 }
Ejemplo n.º 15
0
        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");
        }
Ejemplo n.º 16
0
        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();
        }
Ejemplo n.º 17
0
        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();
        }
Ejemplo n.º 18
0
        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);
        }
Ejemplo n.º 19
0
        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();
        }
Ejemplo n.º 20
0
        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();
        }
Ejemplo n.º 21
0
        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();
        }
Ejemplo n.º 22
0
        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();
        }
Ejemplo n.º 23
0
        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!");
        }
Ejemplo n.º 24
0
        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"]);
        }
Ejemplo n.º 25
0
        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);
        }
Ejemplo n.º 26
0
 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)
     {
     }
 }
Ejemplo n.º 27
0
        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"]);
        }
Ejemplo n.º 28
0
        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;
        }
Ejemplo n.º 30
0
        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();
        }
Ejemplo n.º 31
0
        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;
 }