Re: [OSM-dev] Layered Tiling (Mapnik)
Frederik Ramm frede...@remote.org wrote: Has anyone done some experimentation in that direction? I know that Nop's riding+walking map uses three layers (OSM background, third-party hillshading, OSM foreground), and of course I've seen the grand ImageMagick-based TopOSM. Has anyone tried a multi-overlay tile server in Mapnik? The localized maps on toolserver org are another example: http://toolserver.org/~osm/locale/ Sven -- If you continue running Windows, your system may become unstable. (Windows 95 BSOD) /me is gig...@ircnet, http://sven.gegg.us/ on the Web ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] Layered Tiling (Mapnik)
Sounds great, but it's not that easy, I think... Depending of the map layers you compose, you would need different text layer compositions. For example: In my public transport map, there are priorities for the texts; the name of a railway station has always a higher priority than the name of a bus stop. Hence, if there is bus stop nearby a railway station, the name of the bus stop is not displayed. Now, if you would decide to have different layers for railways and buses, and to switch off the railway layer, the name of the bus stop would have to reappear. To go one step further: Ideal would it be to move the colliding texts slightly instead of omitting them. But then, how to deal with different map layers? Markus Original-Nachricht Datum: Tue, 28 Dec 2010 07:30:51 +0100 Von: Igor Brejc igor.br...@gmail.com An: mar...@gmx.eu CC: Frederik Ramm frede...@remote.org, dev@openstreetmap.org Betreff: Re: [OSM-dev] Layered Tiling (Mapnik) On Mon, Dec 27, 2010 at 11:29 PM, mar...@gmx.eu wrote: But there is one problem you would have to deal with: there is no collision avoidance between the texts of different tile layers. That could be solved if the all the layers were rendered as a single map, but painted onto several layer bitmaps. I'm planning to implement something like this in Maperitive. Igor ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] Layered Tiling (Mapnik)
You're right, that would be a problem. But I guess as long as you have raster-only data, there isn't a perfect way to solve this problem. An alternative would be to render text (and icons, since they can collide, too) on the client-side using JavaScript on top of server-generated tiles. The server could still perform the actual text placement and then send the text, text vectors and classes (=priorities) to the client which would then render it. Client would be able to determine that the bus stop label can be rendered if the railway station class is turned off, for example. In advanced scenario the client would even be able to do additional text placement automation, if necessary. Igor On Tue, Dec 28, 2010 at 11:10 AM, mar...@gmx.eu wrote: Sounds great, but it's not that easy, I think... Depending of the map layers you compose, you would need different text layer compositions. For example: In my public transport map, there are priorities for the texts; the name of a railway station has always a higher priority than the name of a bus stop. Hence, if there is bus stop nearby a railway station, the name of the bus stop is not displayed. Now, if you would decide to have different layers for railways and buses, and to switch off the railway layer, the name of the bus stop would have to reappear. To go one step further: Ideal would it be to move the colliding texts slightly instead of omitting them. But then, how to deal with different map layers? Markus Original-Nachricht Datum: Tue, 28 Dec 2010 07:30:51 +0100 Von: Igor Brejc igor.br...@gmail.com An: mar...@gmx.eu CC: Frederik Ramm frede...@remote.org, dev@openstreetmap.org Betreff: Re: [OSM-dev] Layered Tiling (Mapnik) On Mon, Dec 27, 2010 at 11:29 PM, mar...@gmx.eu wrote: But there is one problem you would have to deal with: there is no collision avoidance between the texts of different tile layers. That could be solved if the all the layers were rendered as a single map, but painted onto several layer bitmaps. I'm planning to implement something like this in Maperitive. Igor ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] Layered Tiling (Mapnik)
Yes, would be a very good solution! The client would get the texts and their font information including their position and display them on its own. This could be done in Javascript. Even collision management would be possible (omitting texts which low priorities or moving them a bit). Of course, we would have to provide this priority information too. Alternatively, every text could be served as a bitmap instead of UTF-8 etc. In this case, the client wouldn't have to do any rendering. I think, I would prefer this solution. Maybe we should think about supplying abbreviations for the texts. So, the client could determine how much space is left and use either the full text or the abbreviated one. But I think, this needs not to be implemented in a first step, it should be a future expansion. ;-) Markus Original-Nachricht Datum: Tue, 28 Dec 2010 12:46:37 +0100 Von: Igor Brejc igor.br...@gmail.com An: mar...@gmx.eu CC: dev@openstreetmap.org Betreff: Re: [OSM-dev] Layered Tiling (Mapnik) You're right, that would be a problem. But I guess as long as you have raster-only data, there isn't a perfect way to solve this problem. An alternative would be to render text (and icons, since they can collide, too) on the client-side using JavaScript on top of server-generated tiles. The server could still perform the actual text placement and then send the text, text vectors and classes (=priorities) to the client which would then render it. Client would be able to determine that the bus stop label can be rendered if the railway station class is turned off, for example. In advanced scenario the client would even be able to do additional text placement automation, if necessary. Igor On Tue, Dec 28, 2010 at 11:10 AM, mar...@gmx.eu wrote: Sounds great, but it's not that easy, I think... Depending of the map layers you compose, you would need different text layer compositions. For example: In my public transport map, there are priorities for the texts; the name of a railway station has always a higher priority than the name of a bus stop. Hence, if there is bus stop nearby a railway station, the name of the bus stop is not displayed. Now, if you would decide to have different layers for railways and buses, and to switch off the railway layer, the name of the bus stop would have to reappear. To go one step further: Ideal would it be to move the colliding texts slightly instead of omitting them. But then, how to deal with different map layers? Markus Original-Nachricht Datum: Tue, 28 Dec 2010 07:30:51 +0100 Von: Igor Brejc igor.br...@gmail.com An: mar...@gmx.eu CC: Frederik Ramm frede...@remote.org, dev@openstreetmap.org Betreff: Re: [OSM-dev] Layered Tiling (Mapnik) On Mon, Dec 27, 2010 at 11:29 PM, mar...@gmx.eu wrote: But there is one problem you would have to deal with: there is no collision avoidance between the texts of different tile layers. That could be solved if the all the layers were rendered as a single map, but painted onto several layer bitmaps. I'm planning to implement something like this in Maperitive. Igor ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev
[OSM-dev] Layered Tiling (Mapnik)
Hi, I am often confronted with people from the classic GIS world who tend to think that tiles are somehow second-class and anything serious needs to be in WMS (or, at least, OGC TMS). Upon closer inspection, if their software supports it, most users are actually *better off* with a standard OSM-style tile server than with WMS. (If their software doesn't support it then you end up using some sort of tile-to-WMS rescaling which messes up the good looks.) Until now, there were two use cases where I advised users to go for WMS rather than tiles: 1. if they needed lots of different projections and variable scaling; 2. if they needed lots of different layers (e.g. roads, buildings, landuse areas, waterways, POIs, ...). I'm beginning to think that #2 need not be a reason to use WMS. Given the way our rendering works, it should only be minimally more expensive to create, say, 10 meta-tiles for an area, each with different features drawn on it, than just one. It would break some layering - if you paint roads and railways on different tiles then you can *either* display roads over railways or railways over roads but not - but on the whole it should not be too bad. Has anyone done some experimentation in that direction? I know that Nop's riding+walking map uses three layers (OSM background, third-party hillshading, OSM foreground), and of course I've seen the grand ImageMagick-based TopOSM. Has anyone tried a multi-overlay tile server in Mapnik? Bye Frederik ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] Layered Tiling (Mapnik)
On Mon, Dec 27, 2010 at 04:22:08PM +0100, Frederik Ramm wrote: Has anyone done some experimentation in that direction? I know that Nop's riding+walking map uses three layers (OSM background, third-party hillshading, OSM foreground), and of course I've seen the grand ImageMagick-based TopOSM. Has anyone tried a multi-overlay tile server in Mapnik? http://www.openstreetbrowser.org is an example with base map, several overlays for routes and other thematic overlays. The new version http://dev.openstreetbrowser.org even supports creating own mapnik style via the web interface. The big problem is rendering speed, because of the full planet database. greetings, Stephan -- Seid unbequem, seid Sand, nicht Öl im Getriebe der Welt! - Günther Eich ,-. | Stephan Plepelits, | | Technische Universität Wien -Studien Informatik Raumplanung | | Projects: | | openstreetbrowser.org couchsurfing.org tubasis.at bl.mud.at | | Contacts: | | Mail: sk...@xover.mud.at Jabber: sk...@jabber.at| | Blog: plepe.at Twitter: twitter.com/plepe | `-' ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] Layered Tiling (Mapnik)
It would break some layering - if you paint roads and railways on different tiles then you can *either* display roads over railways or railways over roads but not - but on the whole it should not be too bad. Has anyone done some experimentation in that direction? Yes, I did exactly this railway thing you're talking about. Look here: http://openptmap.org/?zoom=13lat=52.51787lon=13.39638layers=0B000T But there is one problem you would have to deal with: there is no collision avoidance between the texts of different tile layers. Markus ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev
Re: [OSM-dev] Layered Tiling (Mapnik)
On Mon, Dec 27, 2010 at 11:29 PM, mar...@gmx.eu wrote: But there is one problem you would have to deal with: there is no collision avoidance between the texts of different tile layers. That could be solved if the all the layers were rendered as a single map, but painted onto several layer bitmaps. I'm planning to implement something like this in Maperitive. Igor ___ dev mailing list dev@openstreetmap.org http://lists.openstreetmap.org/listinfo/dev