コード例 #1
0
        public void TestEdgeMatcher()
        {
            IEdgeMatcher matcher = new DefaultEdgeMatcher();

            // create edge tags.
            var edgeTags = new TagsCollection();
            //edge_tags["highway"] = "footway";

            // create point tags.
            var pointTags = new TagsCollection();

            //point_tags["highway"] = "footway";

            // test with empty point tags.
            Assert.IsTrue(matcher.MatchWithEdge(Vehicle.Car, null, null));
            Assert.IsTrue(matcher.MatchWithEdge(Vehicle.Car, pointTags, null));

            // test with empty edge tags.
            pointTags["name"] = "Ben Abelshausen Boulevard";
            Assert.IsFalse(matcher.MatchWithEdge(Vehicle.Car, pointTags, null));
            Assert.IsFalse(matcher.MatchWithEdge(Vehicle.Car, pointTags, edgeTags));

            // test with matching name.
            edgeTags["name"] = "Ben Abelshausen Boulevard";
            Assert.IsTrue(matcher.MatchWithEdge(Vehicle.Car, pointTags, edgeTags));

            // test with none-matching name.
            edgeTags["name"] = "Jorieke Vyncke Boulevard";
            Assert.IsFalse(matcher.MatchWithEdge(Vehicle.Car, pointTags, edgeTags));
        }
コード例 #2
0
        public void TestEdgeMatcherDykstra()
        {
            string       name = "Ben Abelshausen Boulevard";
            IEdgeMatcher matc = new DefaultEdgeMatcher();

            this.TestResolveOnEdge(name, "footway", Vehicle.Pedestrian, matc, true);
            this.TestResolveOnEdge(name, "cycleway", Vehicle.Pedestrian, matc, true);
            this.TestResolveOnEdge(name, "bridleway", Vehicle.Pedestrian, matc, false);
            this.TestResolveOnEdge(name, "path", Vehicle.Pedestrian, matc, true);
            this.TestResolveOnEdge(name, "pedestrian", Vehicle.Pedestrian, matc, true);
            this.TestResolveOnEdge(name, "road", Vehicle.Pedestrian, matc, true);
            this.TestResolveOnEdge(name, "living_street", Vehicle.Pedestrian, matc, true);
            this.TestResolveOnEdge(name, "residential", Vehicle.Pedestrian, matc, true);
            this.TestResolveOnEdge(name, "unclassified", Vehicle.Pedestrian, matc, true);
            this.TestResolveOnEdge(name, "tertiary", Vehicle.Pedestrian, matc, true);
            this.TestResolveOnEdge(name, "secondary", Vehicle.Pedestrian, matc, true);
            this.TestResolveOnEdge(name, "primary", Vehicle.Pedestrian, matc, true);
            this.TestResolveOnEdge(name, "trunk", Vehicle.Pedestrian, matc, false);
            this.TestResolveOnEdge(name, "motorway", Vehicle.Pedestrian, matc, false);

            this.TestResolveOnEdge(name, "footway", Vehicle.Bicycle, matc, false);
            this.TestResolveOnEdge(name, "cycleway", Vehicle.Bicycle, matc, true);
            this.TestResolveOnEdge(name, "bridleway", Vehicle.Bicycle, matc, false);
            this.TestResolveOnEdge(name, "path", Vehicle.Bicycle, matc, true);
            this.TestResolveOnEdge(name, "pedestrian", Vehicle.Bicycle, matc, false);
            this.TestResolveOnEdge(name, "road", Vehicle.Bicycle, matc, true);
            this.TestResolveOnEdge(name, "living_street", Vehicle.Bicycle, matc, true);
            this.TestResolveOnEdge(name, "residential", Vehicle.Bicycle, matc, true);
            this.TestResolveOnEdge(name, "unclassified", Vehicle.Bicycle, matc, true);
            this.TestResolveOnEdge(name, "tertiary", Vehicle.Bicycle, matc, true);
            this.TestResolveOnEdge(name, "secondary", Vehicle.Bicycle, matc, true);
            this.TestResolveOnEdge(name, "primary", Vehicle.Bicycle, matc, true);
            this.TestResolveOnEdge(name, "trunk", Vehicle.Bicycle, matc, false);
            this.TestResolveOnEdge(name, "motorway", Vehicle.Bicycle, matc, false);

            this.TestResolveOnEdge(name, "footway", Vehicle.Moped, matc, false);
            this.TestResolveOnEdge(name, "cycleway", Vehicle.Moped, matc, false);
            this.TestResolveOnEdge(name, "bridleway", Vehicle.Moped, matc, false);
            this.TestResolveOnEdge(name, "path", Vehicle.Moped, matc, false);
            this.TestResolveOnEdge(name, "pedestrian", Vehicle.Moped, matc, false);
            this.TestResolveOnEdge(name, "road", Vehicle.Moped, matc, true);
            this.TestResolveOnEdge(name, "living_street", Vehicle.Moped, matc, true);
            this.TestResolveOnEdge(name, "residential", Vehicle.Moped, matc, true);
            this.TestResolveOnEdge(name, "unclassified", Vehicle.Moped, matc, true);
            this.TestResolveOnEdge(name, "tertiary", Vehicle.Moped, matc, true);
            this.TestResolveOnEdge(name, "secondary", Vehicle.Moped, matc, true);
            this.TestResolveOnEdge(name, "primary", Vehicle.Moped, matc, true);
            this.TestResolveOnEdge(name, "trunk", Vehicle.Moped, matc, true);
            this.TestResolveOnEdge(name, "motorway", Vehicle.Moped, matc, false);

            this.TestResolveOnEdge(name, "footway", Vehicle.MotorCycle, matc, false);
            this.TestResolveOnEdge(name, "cycleway", Vehicle.MotorCycle, matc, false);
            this.TestResolveOnEdge(name, "bridleway", Vehicle.MotorCycle, matc, false);
            this.TestResolveOnEdge(name, "path", Vehicle.MotorCycle, matc, false);
            this.TestResolveOnEdge(name, "pedestrian", Vehicle.MotorCycle, matc, false);
            this.TestResolveOnEdge(name, "road", Vehicle.MotorCycle, matc, true);
            this.TestResolveOnEdge(name, "living_street", Vehicle.MotorCycle, matc, true);
            this.TestResolveOnEdge(name, "residential", Vehicle.MotorCycle, matc, true);
            this.TestResolveOnEdge(name, "unclassified", Vehicle.MotorCycle, matc, true);
            this.TestResolveOnEdge(name, "tertiary", Vehicle.MotorCycle, matc, true);
            this.TestResolveOnEdge(name, "secondary", Vehicle.MotorCycle, matc, true);
            this.TestResolveOnEdge(name, "primary", Vehicle.MotorCycle, matc, true);
            this.TestResolveOnEdge(name, "trunk", Vehicle.MotorCycle, matc, true);
            this.TestResolveOnEdge(name, "motorway", Vehicle.MotorCycle, matc, true);

            this.TestResolveOnEdge(name, "footway", Vehicle.Car, matc, false);
            this.TestResolveOnEdge(name, "cycleway", Vehicle.Car, matc, false);
            this.TestResolveOnEdge(name, "bridleway", Vehicle.Car, matc, false);
            this.TestResolveOnEdge(name, "path", Vehicle.Car, matc, false);
            this.TestResolveOnEdge(name, "pedestrian", Vehicle.Car, matc, false);
            this.TestResolveOnEdge(name, "road", Vehicle.Car, matc, true);
            this.TestResolveOnEdge(name, "living_street", Vehicle.Car, matc, true);
            this.TestResolveOnEdge(name, "residential", Vehicle.Car, matc, true);
            this.TestResolveOnEdge(name, "unclassified", Vehicle.Car, matc, true);
            this.TestResolveOnEdge(name, "tertiary", Vehicle.Car, matc, true);
            this.TestResolveOnEdge(name, "secondary", Vehicle.Car, matc, true);
            this.TestResolveOnEdge(name, "primary", Vehicle.Car, matc, true);
            this.TestResolveOnEdge(name, "trunk", Vehicle.Car, matc, true);
            this.TestResolveOnEdge(name, "motorway", Vehicle.Car, matc, true);

            this.TestResolveOnEdge(name, "footway", Vehicle.SmallTruck, matc, false);
            this.TestResolveOnEdge(name, "cycleway", Vehicle.SmallTruck, matc, false);
            this.TestResolveOnEdge(name, "bridleway", Vehicle.SmallTruck, matc, false);
            this.TestResolveOnEdge(name, "path", Vehicle.SmallTruck, matc, false);
            this.TestResolveOnEdge(name, "pedestrian", Vehicle.SmallTruck, matc, false);
            this.TestResolveOnEdge(name, "road", Vehicle.SmallTruck, matc, true);
            this.TestResolveOnEdge(name, "living_street", Vehicle.SmallTruck, matc, true);
            this.TestResolveOnEdge(name, "residential", Vehicle.SmallTruck, matc, true);
            this.TestResolveOnEdge(name, "unclassified", Vehicle.SmallTruck, matc, true);
            this.TestResolveOnEdge(name, "tertiary", Vehicle.SmallTruck, matc, true);
            this.TestResolveOnEdge(name, "secondary", Vehicle.SmallTruck, matc, true);
            this.TestResolveOnEdge(name, "primary", Vehicle.SmallTruck, matc, true);
            this.TestResolveOnEdge(name, "trunk", Vehicle.SmallTruck, matc, true);
            this.TestResolveOnEdge(name, "motorway", Vehicle.SmallTruck, matc, true);

            this.TestResolveOnEdge(name, "footway", Vehicle.BigTruck, matc, false);
            this.TestResolveOnEdge(name, "cycleway", Vehicle.BigTruck, matc, false);
            this.TestResolveOnEdge(name, "bridleway", Vehicle.BigTruck, matc, false);
            this.TestResolveOnEdge(name, "path", Vehicle.BigTruck, matc, false);
            this.TestResolveOnEdge(name, "pedestrian", Vehicle.BigTruck, matc, false);
            this.TestResolveOnEdge(name, "road", Vehicle.BigTruck, matc, true);
            this.TestResolveOnEdge(name, "living_street", Vehicle.BigTruck, matc, true);
            this.TestResolveOnEdge(name, "residential", Vehicle.BigTruck, matc, true);
            this.TestResolveOnEdge(name, "unclassified", Vehicle.BigTruck, matc, true);
            this.TestResolveOnEdge(name, "tertiary", Vehicle.BigTruck, matc, true);
            this.TestResolveOnEdge(name, "secondary", Vehicle.BigTruck, matc, true);
            this.TestResolveOnEdge(name, "primary", Vehicle.BigTruck, matc, true);
            this.TestResolveOnEdge(name, "trunk", Vehicle.BigTruck, matc, true);
            this.TestResolveOnEdge(name, "motorway", Vehicle.BigTruck, matc, true);

            this.TestResolveOnEdge(name, "footway", Vehicle.Bus, matc, false);
            this.TestResolveOnEdge(name, "cycleway", Vehicle.Bus, matc, false);
            this.TestResolveOnEdge(name, "bridleway", Vehicle.Bus, matc, false);
            this.TestResolveOnEdge(name, "path", Vehicle.Bus, matc, false);
            this.TestResolveOnEdge(name, "pedestrian", Vehicle.Bus, matc, false);
            this.TestResolveOnEdge(name, "road", Vehicle.Bus, matc, true);
            this.TestResolveOnEdge(name, "living_street", Vehicle.Bus, matc, true);
            this.TestResolveOnEdge(name, "residential", Vehicle.Bus, matc, true);
            this.TestResolveOnEdge(name, "unclassified", Vehicle.Bus, matc, true);
            this.TestResolveOnEdge(name, "tertiary", Vehicle.Bus, matc, true);
            this.TestResolveOnEdge(name, "secondary", Vehicle.Bus, matc, true);
            this.TestResolveOnEdge(name, "primary", Vehicle.Bus, matc, true);
            this.TestResolveOnEdge(name, "trunk", Vehicle.Bus, matc, true);
            this.TestResolveOnEdge(name, "motorway", Vehicle.Bus, matc, true);
        }