示例#1
0
        private void InitializeRouting(OsmSharp.UI.Map.Map map)
        {
            //var osmInterpreter = new OsmRoutingInterpreter();
            //_router = Router.CreateLiveFrom(new XmlOsmStreamSource(new FileInfo(@"c:\OSM\bin\wechel.osm").OpenRead()),
            //    osmInterpreter);

            // creates a new interpreter.
            var interpreter = new OsmRoutingInterpreter();
            //            var routingSerializer = new OsmSharp.Routing.CH.Serialization.Sorted.CHEdgeDataDataSourceSerializer(true);
            var original = CHEdgeGraphOsmStreamTarget.Preprocess(new XmlOsmStreamSource(
                                                                   new FileInfo(@"c:\OSM\bin\wechel.osm").OpenRead()),
                                                               interpreter,
                                                               Vehicle.Car);
            //byte[] byteArray;
            //var stream = new MemoryStream();
            //using (stream)
            //{
            //    try
            //    {
            //        routingSerializer.Serialize(stream, original);
            //        byteArray = stream.ToArray();
            //    }
            //    catch (Exception)
            //    {
            //        throw;
            //    }
            //}
            //stream = new MemoryStream(byteArray);
            //Stream stream = new FileInfo(@"c:\OSM\bin\test.osm.pbf.routing.3").OpenRead();

            //IBasicRouterDataSource<CHEdgeData> deserializedVersion =
            //    routingSerializer.Deserialize(stream);
            var basicRouter = new CHRouter();
            _router = Router.CreateCHFrom(
                original, basicRouter, interpreter);

            _routeLayer = new LayerRoute(map.Projection);
            map.AddLayer(_routeLayer);
        }