Imagico.de

blog

fj_3d
fj_3d

More on orthographic 3d maps

| 0 comments

After the general discussion of the boundaries between 2d maps and and 3d perspective views i set up a version of the Franz Josef Land map in orthographic 3d perspective for a more practical demonstration:

Producing this kind of map comes with several difficulties besides the 3d rendering itself. First the projection of the map is not really a projection in a strict sense, even if we ignore the 3d relief and the resulting slight coordinate mismatch and occlusions for the moment. It is an oblique orthographic projection in the already projected coordinate system of the base map, UTM zone 40 in this case. PROJ.4 has no means of calculating this so getting the map nicely displayed in Openlayers requires some trickery. OSM2World demonstrates this for web mercator projection, here it is done using proj4js and applying the additional transformation by hand.

Labeling in another problem, technically it is done like in the normal 2d map and since the elevation differences are fairly small this is not a real problem. However the distorted geometry of the projected coordinate system causes some troubles. The straits and channels are for example mostly labeled as points in OpenStreetMap, requiring first to determine in which direction the strait actually goes. This is usually easy to do but should be done in the original low distortion coordinate system of the map, not in the oblique viewing space of the 3d display. At the same time the available space for placing the labels is of course reduced so the labels do need to be placed differently. A few of them are slightly misplaced as a result of these difficulties.

In addition i updated the normal 2d map tiles of Franz Josef Land. The lakes are properly generalized now and I improved on the contour labeling at the higher zoom levels.

On the whole this looks quite a bit better in higher resolution of course as can be seen in the following example.

Leave a Reply

Required fields are marked *.

*

CAPTCHA

*