예제 #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();
        }
예제 #2
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);
        }
예제 #3
0
        public static void Add <T>(this RoutingEngine engine)
            where T : class, IController
        {
            string name = typeof(T).Name.Replace("Controller", string.Empty);
            var    controllerDetails =
                typeof(T).GetCustomAttributes(typeof(ControllerDetailsAttribute), true).FirstOrDefault() as
                ControllerDetailsAttribute;
            string area = string.Empty;

            if (controllerDetails != null)
            {
                area = controllerDetails.Area;
            }

            PatternRoute patternIdRoute =
                new PatternRoute(string.Format("{1}/{0}/<id>/<action>", name,
                                               string.IsNullOrEmpty(area) ? string.Empty : string.Format("/{0}", area)))
                .DefaultForController().Is <T>()
                .Restrict("id").ValidInteger
                .DefaultForAction().Is("index");

            PatternRoute patternRoute =
                new PatternRoute(string.Format("{1}/{0}/<action>", name,
                                               string.IsNullOrEmpty(area) ? string.Empty : string.Format("/{0}", area)))
                .DefaultForController().Is <T>()
                .DefaultForAction().Is("index");

            if (!string.IsNullOrEmpty(area))
            {
                patternIdRoute.DefaultForArea().Is(area);
                patternRoute.DefaultForArea().Is(area);
            }
            engine.Add(patternIdRoute);
            engine.Add(patternRoute);
        }
        /// <summary>
        /// Creates a DefaultHttpSysService instance with the specified host and port.
        /// </summary>
        /// <param name="isSecured">NOT_SUPPORTED_YET</param>
        /// <param name="host">host</param>
        /// <param name="port">port</param>
        public DefaultHttpSysService(bool isSecured, string host, int port)
        {
            _inputPipe  = new BlockingCollection <HttpContext>();
            _outputPipe = new BlockingCollection <HttpContext>();

            _httpInboundAdapter  = new HttpSysInboundAdapter();
            _httpOutboundAdapter = new HttpSysOutboundAdapter();
            _httpRouter          = new HttpRouter(this);
            _httpProcessors      = new Dictionary <string, IHttpProcessor>();

            //set names
            _httpInboundAdapter.Name  = "TxHTTP_Inbound_Adapter";
            _httpOutboundAdapter.Name = "TxHTTP_Outbound_Adapter";
            _httpRouter.Name          = "TxHTTP_Router";

            //HttpInboundAdapter ----<TaggedContext>----> HttpRouter
            _httpInboundAdapter.OutputPipe = _inputPipe;
            _httpRouter.InputPipe          = _inputPipe;

            //---<HttpContext>---> HttpOutboundAdapter
            _httpOutboundAdapter.InputPipe = _outputPipe;

            _routingEngine = new RoutingEngine();
            AddController(new HttpInternalController(), INTERNAL_PROCESSING_GROUP);

            //create ServiceConfiguration
            _serviceConfiguration           = new ServiceConfiguration();
            _serviceConfiguration.IsSecured = isSecured;
            _serviceConfiguration.Host      = host;
            _serviceConfiguration.Port      = port;
        }
예제 #5
0
        private void SetupWizardController(bool useCurrentRouteForRedirects)
        {
            helper.WizardController = repository.DynamicMock <IWizardController>();
            SetupResult.For(helper.WizardController.UseCurrentRouteForRedirects).Return(useCurrentRouteForRedirects);
            repository.Replay(helper.WizardController);

            if (useCurrentRouteForRedirects)
            {
                repository.BackToRecord(controllerContext, BackToRecordOptions.None);
                var routeMatch = new RouteMatch();
                routeMatch.AddNamed("manufacturer", "Ford");
                routeMatch.AddNamed("model", "Falcon");
                SetupResult.For(controllerContext.RouteMatch).Return(routeMatch);
                SetupResult.For(controllerContext.AreaName).Return("Cars");
                repository.Replay(controllerContext);

                var routingEngine = new RoutingEngine();
                routingEngine.Add(
                    new PatternRoute("/<area>/<manufacturer>/AddOptionsWizard/<model>/[action]")
                    .DefaultForController().Is("AddOptionsWizardController")
                    .DefaultForAction().Is("start"));
                helper.UrlBuilder = new DefaultUrlBuilder(new StubServerUtility(), routingEngine);
                helper.CurrentUrl = new UrlInfo("Cars", "CarsController", "View", String.Empty, "rails");
                helper.UrlBuilder.UseExtensions = false;
            }
        }
예제 #6
0
        public void Should_properly_invoke_the_message_receiver()
        {
            var fiber = new PoolFiber();

            _engine = new DynamicRoutingEngine(fiber);

            _receivedA        = new Future <A>();
            _receivedB        = new Future <B>();
            _receivedC        = new Future <C>();
            _receivedMessageB = new Future <Message <B> >();
            _receivedMessageC = new Future <Message <C> >();

            _engine.Configure(x =>
            {
                x.Receive <A>(_receivedA.Complete);
                x.Receive <B>(_receivedB.Complete);
                x.Receive <C>(_receivedC.Complete);
                x.Receive <Message <B> >(_receivedMessageB.Complete);
                x.Receive <Message <C> >(_receivedMessageC.Complete);
            });

            _engine.Send(new B());
            _engine.Send(new C());
            _engine.Send(new B());
            _engine.Send(new C());

            fiber.Shutdown(5.Minutes());
        }
예제 #7
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);
            }
        }
예제 #8
0
        private void btnRoute_Click(object sender, EventArgs e)
        {
            RtgRoutingSource routingSource = new RtgRoutingSource(@"..\..\SampleData\Austinstreets.rtg");
            RoutingEngine    routingEngine = new RoutingEngine(routingSource, featureSource);

            routingEngine.GeneratingServiceArea += new EventHandler <GeneratingServiceAreaRoutingEngineEventArgs>(routingEngine_GeneratingServiceArea);
            float averageSpeed   = float.Parse(txtAverageSpeed.Text);
            int   drivingMinutes = int.Parse(txtDrivingMinutes.Text);

            PolygonShape         polygonShape = routingEngine.GenerateServiceArea(txtStartId.Text, new TimeSpan(0, drivingMinutes, 0), averageSpeed);
            InMemoryFeatureLayer routingLayer = (InMemoryFeatureLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"];

            routingLayer.InternalFeatures.Remove("ServiceArea");
            if (polygonShape.Validate(ShapeValidationMode.Simple).IsValid)
            {
                routingLayer.InternalFeatures.Add("ServiceArea", new Feature(polygonShape));
                routingLayer.Open();
                winformsMap1.CurrentExtent = routingLayer.GetBoundingBox();
                routingLayer.Close();
            }

            winformsMap1.Overlays["RoutingOverlay"].Lock.IsDirty = true;

            winformsMap1.Refresh();
        }
예제 #9
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();
        }
예제 #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);
        }
예제 #11
0
        public void Should_properly_invoke_the_message_receiver()
        {
            var fiber = new PoolFiber();
            _engine = new DynamicRoutingEngine(fiber);

            _receivedA = new Future<A>();
            _receivedB = new Future<B>();
            _receivedC = new Future<C>();
            _receivedMessageB = new Future<Message<B>>();
            _receivedMessageC = new Future<Message<C>>();

            _engine.Configure(x =>
                {
                    x.Receive<A>(_receivedA.Complete);
                    x.Receive<B>(_receivedB.Complete);
                    x.Receive<C>(_receivedC.Complete);
                    x.Receive<Message<B>>(_receivedMessageB.Complete);
                    x.Receive<Message<C>>(_receivedMessageC.Complete);
                });

            _engine.Send(new B());
            _engine.Send(new C());
            _engine.Send(new B());
            _engine.Send(new C());

            fiber.Shutdown(5.Minutes());
        }
예제 #12
0
 public void Init()
 {
     engine     = new RoutingEngine();
     urlBuilder = new DefaultUrlBuilder
     {
         ServerUtil    = new StubServerUtility(),
         RoutingEngine = engine
     };
 }
예제 #13
0
        private void ShowTheShortestPath(RoutingLayer routingLayer)
        {
            RoutingSource routingSource = new RtgRoutingSource(Path.Combine(rootPath, "DallasWithOneWayRoad.rtg"));
            RoutingEngine routingEngine = new RoutingEngine(routingSource, featureSource);
            RoutingResult routingResult = routingEngine.GetRoute(txtStartId.Text, txtEndId.Text);

            routingLayer.Routes.Clear();
            routingLayer.Routes.Add(routingResult.Route);
        }
예제 #14
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();
        }
예제 #15
0
        public static void Add <T>(this RoutingEngine <T> engine, Activation <T> activation)
            where T : class
        {
            RootNode <T> match = engine.Match <RootNode <T> >().FirstOrDefault();

            if (match == null)
            {
                return;
            }

            match.Add(activation);
        }
예제 #16
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();
        }
예제 #17
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();
        }
예제 #18
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();
        }
예제 #19
0
        private void UserControl_Load(object sender, EventArgs e)
        {
            RenderMap();

            featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp"));
            featureSource.Open();
            RoutingSource routingSource = new RtgRoutingSource(Path.Combine(rootPath, "HighwayFirst.rtg"));

            routingEngine = new RoutingEngine(routingSource, featureSource);
            routingEngine.RoutingAlgorithm.FindingRoute += new EventHandler <FindingRouteRoutingAlgorithmEventArgs>(Algorithm_FindingPath);

            this.cbmPrioritiy.Text = "On Foot";
        }
예제 #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();
        }
예제 #21
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"]);
        }
예제 #22
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"]);
        }
예제 #23
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"]);
        }
        /// <summary>
        /// Creates a new instance of the EditRuleWindow.
        /// </summary>
        /// <param name="router">A reference to the current RoutingEngine instance.</param>
        /// <param name="rule">Either a MatchAction to edit, or null to crate a new MatchAction.</param>
        public EditRuleWindow(RoutingEngine router, MatchAction rule)
        {
            this.router = router;
            InitializeComponent();

            this.cmbSource.ItemsSource = this.router.Sources;
            this.cmbDest.ItemsSource   = this.router.Destinations;

            if (rule != null)
            {
                this.rule = rule;
                this.cmbSource.SelectedValue = rule.MatchSource;
                if (rule.GetMatchType().IsEnum)
                {
                    ((ComboBox)this.matchBorder.Child).SelectedValue = rule.Match;
                }
                else
                {
                    ((TextBox)this.matchBorder.Child).Text = rule.Match.ToString();
                }
                this.cmbDest.SelectedValue   = rule.ActionDestination;
                this.cmbAction.SelectedValue = rule.Action.ToString(CultureInfo.InvariantCulture);
                if (rule.GetArgsType().IsEnum)
                {
                    ((ComboBox)this.argsBorder.Child).SelectedValue = rule.Args;
                }
                else
                {
                    ((TextBox)this.argsBorder.Child).Text = rule.Args.ToString();
                }
                this.CheckEnabled.IsChecked = rule.Enabled;
            }
            else
            {
                this.Title = Properties.Resources.NEW_RULE;
                this.rule  = new MatchAction();
                this.matchBorder.IsEnabled = false;
                this.cmbAction.IsEnabled   = false;
                this.argsBorder.IsEnabled  = false;
            }

            this.initializing = false;
            CheckOK();
        }
예제 #25
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();
        }
		public void Init()
		{
			engine = new RoutingEngine();

			engine.Add(new PatternRoute("<controller>/[action]").
				DefaultForAction().Is("index"));
			engine.Add(new PatternRoute("<area>/<controller>/[action]/[key]").
				DefaultForAction().Is("index"));
			engine.Add(new PatternRoute("admin/<customer>/<controller>/[action]").
				DefaultForAction().Is("index"));
			engine.Add(
				new PatternRoute("/projects/<project>/<controller>/<key>").
					DefaultFor("action").Is("view").
					DefaultForArea().Is("projects"));
			engine.Add(
				new PatternRoute("/projects/<project>/<controller>/[action]/[key]").
					DefaultForArea().Is("projects").
					DefaultForAction().Is("list"));
		}
        public void Init()
        {
            engine = new RoutingEngine();

            engine.Add(new PatternRoute("<controller>/[action]").
                       DefaultForAction().Is("index"));
            engine.Add(new PatternRoute("<area>/<controller>/[action]/[key]").
                       DefaultForAction().Is("index"));
            engine.Add(new PatternRoute("admin/<customer>/<controller>/[action]").
                       DefaultForAction().Is("index"));
            engine.Add(
                new PatternRoute("/projects/<project>/<controller>/<key>").
                DefaultFor("action").Is("view").
                DefaultForArea().Is("projects"));
            engine.Add(
                new PatternRoute("/projects/<project>/<controller>/[action]/[key]").
                DefaultForArea().Is("projects").
                DefaultForAction().Is("list"));
        }
예제 #28
0
        private void UserControl_Load(object sender, EventArgs e)
        {
            featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp"));
            allowArea     = new PolygonShape(txtAvoidWkt.Text);
            featureSource.Open();
            Collection <Feature> features = featureSource.SpatialQuery(allowArea, QueryType.Within, ReturningColumnsType.NoColumns);

            featureSource.Close();
            allowFeatureIds = new Collection <string>();
            foreach (Feature item in features)
            {
                allowFeatureIds.Add(item.Id);
            }
            RoutingSource routingSource = new RtgRoutingSource(Path.Combine(rootPath, "DallasCounty-4326.shortest.rtg"));

            routingEngine = new RoutingEngine(routingSource, new AStarRoutingAlgorithm(), featureSource);

            RenderMap();
        }
예제 #29
0
        private void btnRoute_Click(object sender, EventArgs e)
        {
            RoutingSource routingSource = new RtgRoutingSource(@"..\..\SampleData\AustinStreetFromOleDb.rtg");
            RoutingEngine routingEngine = new RoutingEngine(routingSource, new DijkstraRoutingAlgorithm(), featureSource);
            RoutingResult routingResult = routingEngine.GetRoute(txtStartId.Text, txtEndId.Text);

            RoutingLayer routingLayer = (RoutingLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"];

            winformsMap1.Overlays["RoutingOverlay"].Lock.EnterWriteLock();
            try
            {
                routingLayer.Routes.Clear();
                routingLayer.Routes.Add(routingResult.Route);
            }
            finally
            {
                winformsMap1.Overlays["RoutingOverlay"].Lock.ExitWriteLock();
            }

            winformsMap1.Refresh();
        }
        public static void Start(IMvcApplication application)
        {
            CultureInfo.DefaultThreadCurrentCulture = CultureInfo.InvariantCulture;

            var dependencyContainer = new ServiceCollection();

            dependencyContainer.AddService <IHashService, HashService>();
            dependencyContainer.AddService <IUserCookieService, UserCookieService>();
            dependencyContainer.AddService <ILogger>(() => new FileLogger($"log.txt"));

            application.ConfigureServices(dependencyContainer);
            var settings = application.Configure();

            var serverRoutingTable = new ServerRoutingTable();
            var routingEngine      = new RoutingEngine();

            routingEngine.RegisterRoutes(serverRoutingTable, application, settings, dependencyContainer);

            var server = new Server(settings.PortNumber, serverRoutingTable);

            server.Run();
        }
예제 #31
0
        private void Route()
        {
            RtgRoutingSource routingSource = new RtgRoutingSource(Path.Combine(rootPath, "DallasCounty-4326.shortest.rtg"));
            FeatureSource    featureSource = new ShapeFileFeatureSource(Path.Combine(rootPath, "DallasCounty-4326.shp"));
            RoutingEngine    routingEngine = new RoutingEngine(routingSource, featureSource);

            float                averageSpeed   = float.Parse(txtAverageSpeed.Text);
            int                  drivingMinutes = int.Parse(txtDrivingMinutes.Text);
            SpeedUnit            speedUnit      = GetSpeedUnit();
            PolygonShape         polygonShape   = routingEngine.GenerateServiceArea(txtStartId.Text, new TimeSpan(0, drivingMinutes, 0), averageSpeed, speedUnit);
            InMemoryFeatureLayer routingLayer   = (InMemoryFeatureLayer)((LayerOverlay)winformsMap1.Overlays["RoutingOverlay"]).Layers["RoutingLayer"];

            routingLayer.InternalFeatures.Remove("ServiceArea");
            if (polygonShape.Validate(ShapeValidationMode.Simple).IsValid)
            {
                routingLayer.InternalFeatures.Add("ServiceArea", new Feature(polygonShape));
                routingLayer.Open();
                winformsMap1.CurrentExtent = routingLayer.GetBoundingBox();
                routingLayer.Close();
            }

            winformsMap1.Refresh(winformsMap1.Overlays["RoutingOverlay"]);
        }
예제 #32
0
        public void Using_the_factory_dsl_to_create_a_routing_engine()
        {
            RoutingEngine <Context> engine = RoutingEngineFactory.New <Context>(x =>
            {
                // specify the Uri accessor from the context type
                x.Uri(context => context.Uri);

                x.Route("version").To(context => { });

                //x.Route<int, int, int>((year, month, day) => "archive/{year}/{month}/{day}");

                //					x.Route("archive/{year}/{month}/{day}", r =>
                //						{
                //							r.Default("year", DateTime.Now.Year);
                //
                //							r.Constrain("year").To<int>(1970, 2099);
                //							r.Constrain("month").To<int>(1, 12);
                //							r.Constrain("day").To<int>()
                //								.Where(k => k >= 1)
                //								.Where((y,m,d) => k <= )
                //							r.Default("month", DateTime.Now.Month);
                //							r.Default("day", DateTime.Now.Day);
                //
                //						});
            });

            engine.ShouldNotBeNull();

            /*
             * Route reportRoute = new Route("{locale}/{year}", new ReportRouteHandler());
             * reportRoute.Defaults = new RouteValueDictionary { { "locale", "en-US" }, { "year", DateTime.Now.Year.ToString() } };
             * reportRoute.Constraints = new RouteValueDictionary { { "locale", "[a-z]{2}-[a-z]{2}" }, { "year", @"\d{4}" } };
             * reportRoute.DataTokens = new RouteValueDictionary { { "format", "short" } };
             * routes.Add(reportRoute);
             * */
        }
예제 #33
0
		private void SetupWizardController(bool useCurrentRouteForRedirects)
		{
			helper.WizardController = repository.DynamicMock<IWizardController>();
			SetupResult.For(helper.WizardController.UseCurrentRouteForRedirects).Return(useCurrentRouteForRedirects);
			repository.Replay(helper.WizardController);

			if (useCurrentRouteForRedirects)
			{
				repository.BackToRecord(controllerContext, BackToRecordOptions.None);
				var routeMatch = new RouteMatch();
				routeMatch.AddNamed("manufacturer", "Ford");
				routeMatch.AddNamed("model", "Falcon");
				SetupResult.For(controllerContext.RouteMatch).Return(routeMatch);
				SetupResult.For(controllerContext.AreaName).Return("Cars");
				repository.Replay(controllerContext);

				var routingEngine = new RoutingEngine();
				routingEngine.Add(
					new PatternRoute("/<area>/<manufacturer>/AddOptionsWizard/<model>/[action]")
						.DefaultForController().Is("AddOptionsWizardController")
						.DefaultForAction().Is("start"));
				helper.UrlBuilder = new DefaultUrlBuilder(new StubServerUtility(), routingEngine);
				helper.CurrentUrl = new UrlInfo("Cars", "CarsController", "View", String.Empty, "rails");
				helper.UrlBuilder.UseExtensions = false;
			}
		}
		public void Init()
		{
			engine = new RoutingEngine();
		}
예제 #35
0
 public void Show(RoutingEngine engine)
 {
     Trace.WriteLine(new StringRoutingEngineVisitor(engine).ToString());
 }
예제 #36
0
		public static void Show(RoutingEngine engine)
		{
			RoutingEngineGraphData graphData = engine.GetGraphData();
			Show(graphData);
		}