Work in progress: the new interface on gis.modulo.ro

Displaying mountain zone boundaries at lower zoom levels

We've been looking for a way to make mountain zones stand out on our hiking map, especially at lower zoom levels.

The current startup screen uses the actual bounding boxes as retrieved from the database - rectangular limits are fast when used in DB queries but they're not visually appealing:


The alternate solution we've picked for the new interface is using the boundaries defined for the EU Natura 2000 network. Here's a screenshot of the interface displaying the equivalent information using the Natura 2000 data:

Increasing the importance of some features on the map

We've realized that some of the features we render on the map are significantly more important on a hiking map when compared to the generic openstreetmap map. This is the case with villages, cities and places in general, which serve as important geographical features on a hiking map.

We are slowly modifying our base map rendering rules, to add significance to important features:
Old interfaceNew interface
And this is the image of the village with the hiking transparent layer superimposed at zoom level 12:

Details at higher zoom levels

At zoom level 13, all OSM ways (hiking or not) are displayed in gray. Symbols for the hiking routes are displayed on top of hiking routes:
Also note two rendering glitches in the picture above:
  • gray road over imposed on top of village name

    shows the disadvantage of one of our implementation choices - hiking routes are on a layer of their own, over imposed over a slightly modified base layer.

    Since the village name and gray road are in different layers mapnik's collision detection cannot work.

  • yellow stripe trail symbol over imposed on red hiking trail

    this is the case of two trails sharing a common segment. We are yet to find a solution to this problem - in the new interface we tell mapnik to render the OSMC symbol (yellow stripe) using a point symbolizer at the segment's half way point - because the yellow stripe would collide with the red symbol only one symbol is displayed (the yellow stripe).

    In the current implementation this is addressed as part of the Javascript code that implements vector rendering for trails (trails sharing a common segment are placed in such a way that they don't compete for the same display position); using the same approach in the new interface based on mapnik would require considerable more logic in the datasource query for the trail's point symbolizer.


At zoom level 14, peak names are rendered below the black triangular peak symbol:
At zoom level 15, we render contour lines (where SRTM data is available):