OpenPisteMap (openpistemap.org) was a map showing skiing/snowboarding pistes, from our WikiProject Piste Maps data. The website was shut down on November 2nd 2015.
The website is no longer operational; not even archived content remaining.
"OpenPisteMap was a scrollable map of skiing/snowboarding pistes, rendered from user contributed data from OpenStreetMap's WikiProject Piste Maps project and provided contour line and land relief shading layers generated from NASA's SRTM dataset. OpenPisteMap was developed and maintained by Steve Hill and sponsored by online safety firm Opendium since it opened in March 2008. Unfortunately, due to other commitments, Steve was unable to dedicate the necessary time to maintaining the service and the website was shut down on November 2nd 2015."
Robots and Abusive Clients
There are a few brain-dead robots around that make such large numbers of tile download requests that they could easily be considered a denial of service attack. So, if you are writing or operating a robot, some simple rules:
- Put in some sensible limits on how big an area can be downloaded. Obviously the higher the zoom level, the smaller the maximum area size should be.
- Present a sensible user agent string in your requests. Don't pretend to be a web browser (e.g. Firefox) - yes, it really is easy to tell when it is a robot rather than a browser requesting the data. Similarly, don't just leave it set to a library's default (e.g. "Java").
- Putting an email address in the useragent string to allow you to be contacted in the event of any problems is sensible.
- If you start getting "403 Forbidden" responses, *stop*. Don't just keep hammering away at the server - it probably means that you've been banned for abusive behaviour and continuing to hammer away at the server will just extend your ban.
- If you're getting lots of "404 Not Found" responses then you are requesting tiles that haven't previously been rendered and the server is too overloaded to render them in real-time. Consider slowing down the request rate.
In order to protect the majority of users from the actions of a minority running abusive software, automatic banning is performed. Failure to follow the above points will likely result in a ban. Repeated abuse may lead to a permanent ban.
To Do List
- Mapnik styles:
- Get lift symbols to render the right way up and near the middle of the lift way. (see below)
- with different line types piste:grooming=classic, skating, classic;skating, scooter, backcountry
- highlight route=ski relations differently
- All piste:type=* tags for areas
- natural=cliff - to show rocky crags where you can't ski (without some x-treme jumping)
- ref=number piste numbers on the piste
- Fix up OpenLayers XHTML compatibility
- Mapnik sometimes fails to render some lines at some zoom levels. Affects both ways and contours.
- Might be nice to add winter walks/climbs to the map.
- Being able to export a piste map would be cool.
Paths and Trails of Interest to Piste Users
Paths that are not pistes but are used by skiers and other piste users (both to hike/ski up and to ski/snowboard down) should appear on openpistemap. These include off-piste ski trails (official or unofficial, in bounds or out of bounds) and snowshoe trails:
- ski=designated or ski=yes as appropriate
- snowshoe=designated or showshoe=yes as appropriate
Suggested rendering: as paths are rendered today, but colored according to piste:difficulty.
Trails that are primarily for hiking should appear on openpistemap as well if they are of interest to skiers:
Suggested rendering: as footways are rendered today, but colored according to piste:difficulty.
Rendering lift symbols
Symbols are currently rendered using LinePatternSymboliser. This renders the symbol at the start of the way (and at configured intervals thereafter) and orientated with the way (i.e. if the way is drawn from right to left the symbol will be rendered upside down).
A possible answer is to fake nodes in the middle of the way. PostGIS might be able to provide the midpoint of a LINESTRING, in which case it could be implemented as another layer in Mapnik with a nifty SELECT statement.
Care must be taken to avoid colliding with the text name of the lift.