예제 #1
0
        private void btnRoute_Click(object sender, EventArgs e)
        {
            MultipleShapeFileFeatureSource featureSource = new MultipleShapeFileFeatureSource(@"..\..\SampleData\testdata?.shp", @"..\..\SampleData\testdata?.midx");
            RoutingSource routingSource = new RtgRoutingSource(@"..\..\SampleData\testdata.rtg");
            RoutingEngine routingEngine = new RoutingEngine(routingSource);
            RoutingResult routingResult = routingEngine.GetShortestPath(featureSource, 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
        private void btnGenerateRoadData_Click(object sender, EventArgs e)
        {
            MultipleShapeFileFeatureLayer.BuildIndex(@"..\..\SampleData\testdata?.shp", BuildIndexMode.DoNotRebuild);
            MultipleShapeFileFeatureSource featureSource      = new MultipleShapeFileFeatureSource(@"..\..\SampleData\testdata?.shp", @"..\..\SampleData\testdata?.midx");
            Collection <string>            shapePathFileNames = featureSource.GetShapePathFileNames();
            string fileNames = String.Empty;

            foreach (string fileName in shapePathFileNames)
            {
                fileNames += Path.GetFileName(fileName) + ",";
            }
            RtgRoutingSource.GenerateRoutingData(@"..\..\SampleData\testdata.rtg", featureSource, fileNames.TrimEnd(','), BuildRoutingDataMode.DoNotRebuild);
            MessageBox.Show("Finish building routing data!");
        }