/// <summary> /// Raises the OnLoad event. /// </summary> /// <param name="e"></param> protected override void OnLoad(EventArgs e) { base.OnLoad(e); // initialize mapcss interpreter. var mapCSSInterpreter = new MapCSSInterpreter(new FileInfo(@"dark_roads.mapcss").OpenRead(), new MapCSSDictionaryImageSource()); // initialize map. var map = new OsmSharp.UI.Map.Map(); //// initialize router. try { _router = Router.CreateFrom(new OsmSharp.Osm.PBF.Streams.PBFOsmStreamSource(new FileInfo(@"C:\Users\smccloud\Documents\GitHub\OsmSharp.Service.Tiles\OsmSharp.Service.Tiles.SelfHost\bin\Debug\stcloud.osm.pbf").OpenRead()), new OsmRoutingInterpreter()); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } //var scene = new Scene2D(new OsmSharp.Math.Geo.Projections.WebMercator(), new List<float>(new float[] { // 16, 14, 12, 10 })); //var target = new StyleOsmStreamSceneTarget( // mapCSSInterpreter, scene, new WebMercator()); //var source = new PBFOsmStreamSource( // new FileInfo(@"kempen.osm.pbf").OpenRead()); //var progress = new OsmStreamFilterProgress(); //progress.RegisterSource(source); //target.RegisterSource(progress); //target.Pull(); ////var merger = new Scene2DObjectMerger(); ////scene = merger.BuildMergedScene(scene); //map.AddLayer(new LayerScene(scene)); //var dataSource = MemoryDataSource.CreateFromXmlStream( // new FileInfo(@"D:\Dropbox\Dropbox\SharpSoftware\Projects\Eurostation ReLive\Server_Dropbox\OSM\relive_mechelen\mechelen_new.osm").OpenRead()); //map.AddLayer(new LayerOsm(dataSource, mapCSSInterpreter, map.Projection)); var layerTile = new LayerTile(@"http://*****:*****@"default.map").OpenRead(), // true))); // initialize route/points layer. _layerRoute = new LayerRoute(new OsmSharp.Math.Geo.Projections.WebMercator()); map.AddLayer(_layerRoute); _layerPrimitives = new LayerPrimitives(new OsmSharp.Math.Geo.Projections.WebMercator()); map.AddLayer(_layerPrimitives); // set control properties. this.mapControl1.Map = map; this.mapControl1.MapCenter = new GeoCoordinate(45.5233, -94.14905); this.mapControl1.MapZoom = 14; this.mapControl1.Refresh(); this.mapControl1.MapMouseClick += mapControl1_MapMouseClick; this.mapControl1.MapMouseMove += mapControl1_MapMouseMove; }
/// <summary> /// Tests interpreting all data from a given pbf source. /// </summary> /// <param name="name"></param> /// <param name="mapCSS"></param> /// <param name="scene"></param> /// <param name="pbfSource"></param> public static void TestInterpret(string name, string mapCSS, Scene2D scene, string pbfSource) { FileInfo cssFile = new FileInfo(string.Format(@".\TestFiles\{0}", mapCSS)); Stream cssStream = cssFile.OpenRead(); MapCSSInterpreter interpreter = new MapCSSInterpreter(cssStream, new MapCSSDictionaryImageSource()); MapCSSInterpreterTests.TestInterpret(name, interpreter, scene, pbfSource); cssStream.Dispose(); }
static void Main(string[] args) { // enable logging and use the console as output. OsmSharp.Logging.Log.Enable(); OsmSharp.Logging.Log.RegisterListener( new OsmSharp.WinForms.UI.Logging.ConsoleTraceListener()); // create router. using (var source = new FileInfo(@"kempen.osm.pbf").OpenRead()) { var pbfSource = new PBFOsmStreamSource(source); var progress = new OsmStreamFilterProgress(); progress.RegisterSource(pbfSource); var router = Router.CreateFrom(progress, new OsmRoutingInterpreter()); OsmSharp.Service.Routing.ApiBootstrapper.Add("default", router); } // initialize mapcss interpreter. var mapCSSInterpreter = new MapCSSInterpreter( Assembly.GetExecutingAssembly().GetManifestResourceStream("OsmSharp.Service.Routing.Sample.SelfHost.custom.mapcss"), new MapCSSDictionaryImageSource()); using (var source = new FileInfo(@"kempen.osm.pbf").OpenRead()) { var pbfSource = new PBFOsmStreamSource(source); var scene = new Scene2D(new OsmSharp.Math.Geo.Projections.WebMercator(), new List<float>(new float[] { 16, 14, 12, 10 })); var target = new StyleOsmStreamSceneTarget( mapCSSInterpreter, scene, new WebMercator()); var progress = new OsmStreamFilterProgress(); progress.RegisterSource(pbfSource); target.RegisterSource(progress); target.Pull(); // create a new instance (with a cache). var instance = new RenderingInstance(); instance.Map.AddLayer(new LayerScene(scene)); // add a default test instance. OsmSharp.Service.Tiles.ApiBootstrapper.AddInstance("default", instance); } var uri = new Uri("http://*****:*****@ http://localhost:1234"); System.Diagnostics.Process.Start("http://localhost:1234/default"); Console.ReadLine(); } }
private void frmMain_Load(object sender, EventArgs e) { var mapCSSInterpreter = new MapCSSInterpreter(new FileInfo(@"dark_roads.mapcss").OpenRead(), new MapCSSDictionaryImageSource()); // initialize map. var map = new OsmSharp.UI.Map.Map(); //// initialize router. try { _router = Router.CreateLiveFrom(new OsmSharp.Osm.PBF.Streams.PBFOsmStreamSource(new FileInfo(@"C:\Users\smccloud\Documents\GitHub\OsmSharp.Service.Tiles\OsmSharp.Service.Tiles.SelfHost\bin\Debug\stcloud.osm.pbf").OpenRead()), new OsmRoutingInterpreter()); } catch (Exception ex) { MessageBox.Show(ex.ToString()); } try { var layerTile = new LayerTile(@"http://localhost:1234/tiles_stcloud/{z}/{x}/{y}.png"); map.AddLayer(layerTile); _layerRoute = new LayerRoute(new OsmSharp.Math.Geo.Projections.WebMercator()); map.AddLayer(_layerRoute); _layerPrimitives = new LayerPrimitives(new OsmSharp.Math.Geo.Projections.WebMercator()); map.AddLayer(_layerPrimitives); // set control properties. this.mapControl1.Map = map; this.mapControl1.MapCenter = new GeoCoordinate(45.5233, -94.14905); this.mapControl1.MapZoom = 14; this.mapControl1.Refresh(); this.mapControl1.MapMouseClick += mapControl1_MapMouseClick; this.mapControl1.MapMouseMove += mapControl1_MapMouseMove; } catch (Exception ex) { MessageBox.Show(ex.ToString()); } finally { this.Close(); } }
/// <summary> /// Tests interpreting all data from a given pbf source. /// </summary> /// <param name="name"></param> /// <param name="scene"></param> /// <param name="interpreter"></param> /// <param name="pbfSource"></param> public static void TestInterpret(string name, MapCSSInterpreter interpreter, Scene2D scene, string pbfSource) { StyleOsmStreamSceneTarget target = new StyleOsmStreamSceneTarget( interpreter, scene, new WebMercator()); FileInfo testFile = new FileInfo(string.Format(@".\TestFiles\{0}", pbfSource)); Stream stream = testFile.OpenRead(); PBFOsmStreamSource source = new PBFOsmStreamSource(stream); target.RegisterSource(source); PerformanceInfoConsumer performanceInfo = new PerformanceInfoConsumer(string.Format("{0}.Add", name)); performanceInfo.Start(); performanceInfo.Report("Interpreting style with objects from {0}...", pbfSource.ToString()); target.Pull(); performanceInfo.Stop(); Console.Write("", scene.BackColor); stream.Dispose(); }
public void TestEmptyCSS() { // create 'test' objects. Node node1 = new Node(); node1.Id = 1; node1.Latitude = 1; node1.Longitude = 1; Node node2 = new Node(); node2.Id = 2; node2.Latitude = 2; node2.Longitude = 2; Way way = new Way(); way.Id = 1; way.Nodes = new List<long>(); way.Nodes.Add(1); way.Nodes.Add(2); // create the datasource. MemoryDataSource dataSource = new MemoryDataSource(); dataSource.AddNode(node1); dataSource.AddNode(node2); dataSource.AddWay(way); // create the projection and scene objects. var mercator = new WebMercator(); Scene2D scene = new Scene2D(new OsmSharp.Math.Geo.Projections.WebMercator(), 16); // create the interpreter. MapCSSInterpreter interpreter = new MapCSSInterpreter(string.Empty, new MapCSSDictionaryImageSource()); interpreter.Translate(scene, mercator, dataSource, node1); interpreter.Translate(scene, mercator, dataSource, node2); interpreter.Translate(scene, mercator, dataSource, way); // test the scene contents. Assert.AreEqual(0, scene.Count); Assert.AreEqual(SimpleColor.FromKnownColor(KnownColor.Black).Value, scene.BackColor); }
/// <summary> /// Raises the OnLoad event. /// </summary> /// <param name="e"></param> protected override void OnLoad(EventArgs e) { base.OnLoad(e); // initialize mapcss interpreter. var mapCSSInterpreter = new MapCSSInterpreter( new FileInfo(@"dark_roads.mapcss").OpenRead(), new MapCSSDictionaryImageSource()); // initialize map. var map = new OsmSharp.UI.Map.Map(); //Scene2D scene = new Scene2D(new OsmSharp.Math.Geo.Projections.WebMercator(), new List<float>(new float[] { // 16, 14, 12, 10 })); //StyleOsmStreamSceneTarget target = new StyleOsmStreamSceneTarget( // mapCSSInterpreter, scene, new WebMercator()); //FileInfo testFile = new FileInfo(@"kempen.osm.pbf"); //Stream stream = testFile.OpenRead(); //OsmStreamSource source = new PBFOsmStreamSource(stream); //OsmStreamFilterProgress progress = new OsmStreamFilterProgress(source); //target.RegisterSource(progress); //target.Pull(); //var merger = new Scene2DObjectMerger(); //scene = merger.BuildMergedScene(scene); //map.AddLayer(new LayerScene(scene)); var dataSource = MemoryDataSource.CreateFromPBFStream( new FileInfo(@"kempen.osm.pbf").OpenRead()); map.AddLayer(new LayerOsm(dataSource, mapCSSInterpreter, map.Projection)); ////map.AddLayer(new LayerTile(@"http://otile1.mqcdn.com/tiles/1.0.0/osm/{0}/{1}/{2}.png")); //map.AddLayer(new LayerScene( // Scene2D.Deserialize(new FileInfo(@"kempen-big.osm.pbf.scene.layered").OpenRead(), // true))); // set control properties. this.mapControl1.Map = map; this.mapControl1.MapCenter = new GeoCoordinate(51.26371, 4.7854); // wechel this.mapControl1.MapZoom = 16; }
public void Scene2DSimpleSerializeDeserializeTest() { // create the MapCSS image source. var imageSource = new MapCSSDictionaryImageSource(); // load mapcss style interpreter. var mapCSSInterpreter = new MapCSSInterpreter( Assembly.GetExecutingAssembly().GetManifestResourceStream( "OsmSharp.UI.Test.Unittests.Data.MapCSS.test.mapcss"), imageSource); // initialize the data source. var xmlSource = new XmlOsmStreamSource( Assembly.GetExecutingAssembly().GetManifestResourceStream( "OsmSharp.UI.Test.Unittests.Data.test.osm")); IEnumerable<OsmGeo> dataSource = xmlSource; MemoryDataSource source = MemoryDataSource.CreateFrom(xmlSource); // get data. var scene = new Scene2D(new OsmSharp.Math.Geo.Projections.WebMercator(), 16); var projection = new WebMercator(); GeoCoordinateBox box = null; foreach (var osmGeo in dataSource) { ICompleteOsmGeo completeOsmGeo = null; switch (osmGeo.Type) { case OsmGeoType.Node: completeOsmGeo = osmGeo as Node; if(completeOsmGeo.Tags == null) { // make sure every node has a tags collection. completeOsmGeo.Tags = new TagsCollection(); } break; case OsmGeoType.Way: completeOsmGeo = CompleteWay.CreateFrom(osmGeo as Way, source); break; case OsmGeoType.Relation: completeOsmGeo = CompleteRelation.CreateFrom(osmGeo as Relation, source); break; } // update box. if (completeOsmGeo != null) { if (box == null) { box = completeOsmGeo.BoundingBox; } else if (completeOsmGeo.BoundingBox != null) { box = box + completeOsmGeo.BoundingBox; } } // translate each object into scene object. mapCSSInterpreter.Translate(scene, projection, source, osmGeo as OsmGeo); } // create the stream. TagsCollectionBase metaTags = new TagsCollection(); metaTags.Add("SomeTestKey", "SomeTestValue"); var stream = new MemoryStream(); scene.Serialize(stream, true, metaTags); // deserialize the stream. metaTags = null; stream.Seek(0, SeekOrigin.Begin); IPrimitives2DSource sceneSource = Scene2D.Deserialize(stream, true, out metaTags); // test meta tags. Assert.IsTrue(metaTags.ContainsKeyValue("SomeTestKey", "SomeTestValue")); if (box != null) { // query both and get the same results. int counter = 100; var rand = new Random(); while (counter > 0) { var queryBox = new GeoCoordinateBox( box.GenerateRandomIn(rand), box.GenerateRandomIn(rand)); var zoomFactor = (float)projection.ToZoomFactor(15); View2D testView = View2D.CreateFromBounds( projection.LatitudeToY(queryBox.MaxLat), projection.LongitudeToX(queryBox.MinLon), projection.LatitudeToY(queryBox.MinLat), projection.LongitudeToX(queryBox.MaxLon)); var testScene = new Scene2D(new OsmSharp.Math.Geo.Projections.WebMercator(), 16); IEnumerable<Primitive2D> primitives = sceneSource.Get(testView, zoomFactor); // var resultIndex = new HashSet<Scene2DPrimitive>(testScene.Get(testView, zoomFactor)); // var resultReference = new HashSet<Scene2DPrimitive>(scene.Get(testView, zoomFactor)); //Assert.AreEqual(resultReference.Count, resultIndex.Count); //foreach (var data in resultIndex) //{ // Assert.IsTrue(resultReference.Contains(data)); //} //foreach (var data in resultReference) //{ // Assert.IsTrue(resultIndex.Contains(data)); //} counter--; } } }
public void TestMapCSSSimpleEval() { MemoryDataSource source = new MemoryDataSource( Node.Create(1, 0, 0), Node.Create(2, 1, 0), Node.Create(3, 0, 1), Way.Create(1, new TagsCollection( Tag.Create("width", "10")), 1, 2, 3, 1)); // test closed way. string css = "way { " + " width: eval(\"tag('width')\"); " + " color: green; " + "} "; // create the projection and scene objects. var mercator = new WebMercator(); Scene2D scene = new Scene2D(new OsmSharp.Math.Geo.Projections.WebMercator(), 16); // create the projection and scene objects. scene = new Scene2D(new OsmSharp.Math.Geo.Projections.WebMercator(), 16); // create the interpreter. MapCSSInterpreter interpreter = new MapCSSInterpreter(css, new MapCSSDictionaryImageSource()); interpreter.Translate(scene, mercator, source, source.GetWay(1)); // test the scene contents. Assert.AreEqual(1, scene.Count); Primitive2D primitive = scene.Get(0); Assert.IsInstanceOf<Line2D>(primitive); Line2D line = (primitive as Line2D); Assert.AreEqual(10, line.Width); }
public void TestMapCSSArea() { MemoryDataSource source = new MemoryDataSource( Node.Create(1, 0, 0), Node.Create(2, 1, 0), Node.Create(3, 0, 1), Way.Create(1, new TagsCollection( Tag.Create("area", "yes")), 1, 2, 3, 1)); // test closed way. string css = "area { " + " fill-color: black; " + "} "; // create the projection and scene objects. var mercator = new WebMercator(); Scene2D scene = new Scene2D(new OsmSharp.Math.Geo.Projections.WebMercator(), 16); // create the projection and scene objects. scene = new Scene2D(new OsmSharp.Math.Geo.Projections.WebMercator(), 16); // create the interpreter. MapCSSInterpreter interpreter = new MapCSSInterpreter(css, new MapCSSDictionaryImageSource()); interpreter.Translate(scene, mercator, source, source.GetWay(1)); // test the scene contents. Assert.AreEqual(1, scene.Count); Primitive2D primitive = scene.Get(0); Assert.IsInstanceOf<Polygon2D>(primitive); }
public void TestCanvasJOSMSettingsCSS() { // create CSS. string css = "canvas { " + "background-color: white; " + "default-points: true; " + // adds default points for every node (color: black, size: 2). "default-lines: true; " + // adds default lines for every way (color: red, width: 1). "} "; // create 'test' objects. Node node1 = new Node(); node1.Id = 1; node1.Latitude = 1; node1.Longitude = 1; Node node2 = new Node(); node2.Id = 2; node2.Latitude = 2; node2.Longitude = 2; Way way = new Way(); way.Id = 1; way.Nodes = new List<long>(); way.Nodes.Add(1); way.Nodes.Add(2); // create the datasource. MemoryDataSource dataSource = new MemoryDataSource(); dataSource.AddNode(node1); dataSource.AddNode(node2); dataSource.AddWay(way); // create the projection and scene objects. var mercator = new WebMercator(); Scene2D scene = new Scene2D(new OsmSharp.Math.Geo.Projections.WebMercator(), 16); // create the interpreter. MapCSSInterpreter interpreter = new MapCSSInterpreter(css, new MapCSSDictionaryImageSource()); interpreter.Translate(scene, mercator, dataSource, node1); interpreter.Translate(scene, mercator, dataSource, node2); interpreter.Translate(scene, mercator, dataSource, way); // test the scene contents. Assert.AreEqual(3, scene.Count); Assert.AreEqual(SimpleColor.FromKnownColor(KnownColor.White).Value, scene.BackColor); // test the scene point 1. Primitive2D primitive = scene.Get(0); Assert.IsNotNull(primitive); Assert.IsInstanceOf<Primitive2D>(primitive); Point2D pointObject = primitive as Point2D; Assert.AreEqual(2, pointObject.Size); Assert.AreEqual(SimpleColor.FromKnownColor(KnownColor.Black).Value, pointObject.Color); Assert.AreEqual(mercator.LongitudeToX(1), pointObject.X); Assert.AreEqual(mercator.LatitudeToY(1), pointObject.Y); // test the scene point 2. primitive = scene.Get(1); Assert.IsNotNull(primitive); Assert.IsInstanceOf<Point2D>(primitive); pointObject = primitive as Point2D; Assert.AreEqual(2, pointObject.Size); Assert.AreEqual(SimpleColor.FromKnownColor(KnownColor.Black).Value, pointObject.Color); Assert.AreEqual(mercator.LongitudeToX(2), pointObject.X); Assert.AreEqual(mercator.LatitudeToY(2), pointObject.Y); // test the scene line 2. primitive = scene.Get(2); Assert.IsNotNull(primitive); Assert.IsInstanceOf<Line2D>(primitive); Line2D line = primitive as Line2D; Assert.AreEqual(1, line.Width); Assert.AreEqual(SimpleColor.FromKnownColor(KnownColor.Red).Value, line.Color); Assert.IsNotNull(line.X); Assert.IsNotNull(line.Y); Assert.AreEqual(2, line.X.Length); Assert.AreEqual(2, line.Y.Length); Assert.AreEqual(mercator.LongitudeToX(1), line.X[0]); Assert.AreEqual(mercator.LatitudeToY(1), line.Y[0]); Assert.AreEqual(mercator.LongitudeToX(2), line.X[1]); Assert.AreEqual(mercator.LatitudeToY(2), line.Y[1]); }
public void TestCanvasSettingsCSS() { // create CSS. string css = "canvas { " + "fill-color: green; " + "} "; // create 'test' objects. Node node1 = new Node(); node1.Id = 1; node1.Latitude = 1; node1.Longitude = 1; Node node2 = new Node(); node2.Id = 2; node2.Latitude = 2; node2.Longitude = 2; Way way = new Way(); way.Id = 1; way.Nodes = new List<long>(); way.Nodes.Add(1); way.Nodes.Add(2); // create the datasource. MemoryDataSource dataSource = new MemoryDataSource(); dataSource.AddNode(node1); dataSource.AddNode(node2); dataSource.AddWay(way); // create the projection and scene objects. var mercator = new WebMercator(); Scene2D scene = new Scene2DSimple(); // create the interpreter. MapCSSInterpreter interpreter = new MapCSSInterpreter(css, new MapCSSDictionaryImageSource()); interpreter.Translate(scene, mercator, dataSource, node1); interpreter.Translate(scene, mercator, dataSource, node2); interpreter.Translate(scene, mercator, dataSource, way); // test the scene contents. Assert.AreEqual(0, scene.Count); Assert.AreEqual(SimpleColor.FromKnownColor(KnownColor.Green).Value, scene.BackColor); }
public void TestMapCSSClosedWay() { // tests map css interpretation of a closed way marked as an area. MemoryDataSource source = new MemoryDataSource( Node.Create(1, 0, 0), Node.Create(2, 1, 0), Node.Create(3, 0, 1), Way.Create(1, new SimpleTagsCollection( Tag.Create("area", "yes")), 1, 2, 3, 1)); // test closed way. string css = "way[area] { " + " fill-color: black; " + "} "; // create the projection and scene objects. var mercator = new WebMercator(); Scene2D scene = new Scene2DSimple(); // create the interpreter. MapCSSInterpreter interpreter = new MapCSSInterpreter(css, new MapCSSDictionaryImageSource()); interpreter.Translate(scene, mercator, source, source.GetWay(1)); // test the scene contents. Assert.AreEqual(1, scene.Count); List<IScene2DPrimitive> primitives = scene.Get(0); Assert.IsNotNull(primitives); Assert.AreEqual(1, primitives.Count); IScene2DPrimitive primitive = primitives[0]; Assert.IsInstanceOf<Polygon2D>(primitive); }
/// <summary> /// Executes the style filtering code. /// </summary> /// <param name="source"></param> /// <param name="css"></param> /// <returns></returns> private List<OsmGeo> FilterUsingStyleInterpreter(IEnumerable<OsmGeo> source, string css) { MapCSSInterpreter interpreter = new MapCSSInterpreter(css, new MapCSSDictionaryImageSource()); StyleOsmStreamFilter filter = new StyleOsmStreamFilter(interpreter); filter.RegisterSource(source.ToOsmStreamSource()); return new List<OsmGeo>(filter); }
/// <summary> /// Raises the OnLoad event. /// </summary> /// <param name="e"></param> protected override void OnLoad(EventArgs e) { base.OnLoad(e); // create the MapCSS image source. var imageSource = new MapCSSDictionaryImageSource(); imageSource.Add("styles/default/parking.png", Assembly.GetExecutingAssembly().GetManifestResourceStream("OsmSharp.WinForms.UI.Sample.images.parking.png")); imageSource.Add("styles/default/bus.png", Assembly.GetExecutingAssembly().GetManifestResourceStream("OsmSharp.WinForms.UI.Sample.images.bus.png")); imageSource.Add("styles/default/postbox.png", Assembly.GetExecutingAssembly().GetManifestResourceStream("OsmSharp.WinForms.UI.Sample.images.postbox.png")); // load mapcss style interpreter. var mapCSSInterpreter = new MapCSSInterpreter( new FileInfo(@"C:\Users\xivk\Dropbox\SharpSoftware\Projects\Westtour WOI\wvl.mapcss").OpenRead(), imageSource); // initialize the data source. //var dataSource = MemoryDataSource.CreateFromXmlStream(new FileInfo(@"c:\OSM\bin\wechel.osm").OpenRead()); var dataSource = MemoryDataSource.CreateFromPBFStream(new FileInfo(@"C:\OSM\bin\wvl.osm.pbf").OpenRead()); //var dataSource = MemoryDataSource.CreateFromPBFStream(new FileInfo(@"c:\OSM\bin\gent.osm.pbf").OpenRead()); //var dataSource = MemoryDataSource.CreateFromPBFStream(new FileInfo(@"c:\OSM\bin\lebbeke.osm.pbf").OpenRead()); //Assembly.GetExecutingAssembly().GetManifestResourceStream("OsmSharp.WinForms.UI.Sample.test.osm")); // initialize map. var map = new OsmSharp.UI.Map.Map(); map.AddLayer(new LayerOsm(dataSource, mapCSSInterpreter, map.Projection)); //map.AddLayer(new LayerTile(@"http://otile1.mqcdn.com/tiles/1.0.0/osm/{0}/{1}/{2}.png")); //map.AddLayer(new LayerMBTile(@"C:\Users\xivk\Documents\Nostalgeo.mbtiles")); //map.AddLayer( // new LayerScene( // Scene2DLayered.Deserialize(new FileInfo(@"c:\OSM\bin\kempen.osm.pbf.scene.layered").OpenRead(), true))); //map.AddLayer( // new LayerScene( // Scene2DLayered.Deserialize(new FileInfo(@"c:\OSM\bin\wvl.map").OpenRead(), true))); //this.InitializeRouting(map); //// create gpx layer. //var gpxLayer = new LayerGpx(map.Projection); //gpxLayer.AddGpx( // Assembly.GetExecutingAssembly().GetManifestResourceStream("OsmSharp.WinForms.UI.Sample.test.gpx")); //map.AddLayer(gpxLayer); // set control properties. this.mapControl1.Map = map; //this.mapControl1.Center = new GeoCoordinate(51.26371, 4.7854); //51.26371&lon=4.7854 // wechel.osm //this.mapControl1.Center = new GeoCoordinate(50.88672, 3.23899); // lendelede //this.mapControl1.Center = new GeoCoordinate(50.9523195, 3.0997436); //this.mapControl1.MapCenter = new GeoCoordinate(51.22105, 2.93419); // oostende spoor. this.mapControl1.MapCenter = new GeoCoordinate(51.156803, 2.958887); // gistel //this.mapControl1.MapCenter = new GeoCoordinate(51.05608, 3.72139); // gent //this.mapControl1.Center = new GeoCoordinate(50.9969, 4.1201); this.mapControl1.MapZoom = 19; }
/// <summary> /// Builds a tile server instance based on the given osm source and mapcss styles file. /// </summary> /// <param name="name">The name of the instance-to-be.</param> /// <param name="source">The osm source stream.</param> /// <param name="mapCSSfile">The stream containing the mapcss.</param> /// <param name="cacheFolder"></param> private static void BuildTileServer(string name, OsmStreamSource source, Stream mapCSSfile, string cacheFolder) { try { // initialize mapcss interpreter. var mapCSSInterpreter = new MapCSSInterpreter(mapCSSfile, new MapCSSDictionaryImageSource()); var scene = new Scene2D(new OsmSharp.Math.Geo.Projections.WebMercator(), new List<float>(new float[] { 16, 14, 12, 10 })); var target = new StyleOsmStreamSceneTarget( mapCSSInterpreter, scene, new WebMercator()); target.RegisterSource(source); target.Pull(); //var merger = new Scene2DObjectMerger(); //scene = merger.BuildMergedScene(scene); OsmSharp.Service.Tiles.RenderingInstance instance = null; if (string.IsNullOrWhiteSpace(cacheFolder)) { // no cache. instance = new OsmSharp.Service.Tiles.RenderingInstance(); } else { // use cache. var instanceCacheFolder = Path.Combine(cacheFolder, name); var instanceCacheDirectoryInfo = new DirectoryInfo(instanceCacheFolder); if (!instanceCacheDirectoryInfo.Exists) { // create the directory if it doesn't exists. instanceCacheDirectoryInfo.Create(); } var instanceCache = new OsmSharp.Service.Tiles.Cache.TileCache(new DirectoryInfo(instanceCacheFolder)); instanceCache.Clear(); instance = new OsmSharp.Service.Tiles.RenderingInstance(instanceCache); } instance.Map.AddLayer(new LayerScene(scene)); // add a default test instance. OsmSharp.Service.Tiles.ApiBootstrapper.AddInstance(name, instance); } catch (Exception ex) { OsmSharp.Logging.Log.TraceEvent("Bootstrapper.BuildTileServer", OsmSharp.Logging.TraceEventType.Error, "Failed to setup tile service: " + ex.Message); } }
/// <summary> /// Builds a rendering instance for a mapCSS file. /// </summary> /// <param name="streamSource"></param> /// <param name="mapCSSFile"></param> /// <returns></returns> public static RenderingInstance BuildForMapCSS(OsmStreamSource streamSource, Stream mapCSSFile) { var instance = new RenderingInstance(); // load data into memory. var dataSource = MemoryDataSource.CreateFrom(streamSource); // create mapCSS interpreter. var interpreter = new MapCSSInterpreter(mapCSSFile, new MapCSSDictionaryImageSource()); // add layer to map. instance.Map.AddLayer(new LayerOsm(dataSource, interpreter, instance.Map.Projection)); return instance; }