OSM-3D.org
This project and particularly the web platform is OFFLINE! You may run it online, but only if you install an older Java version. The server crashed and there is no resource to keep it running again. Maybe the sources will be available on github in the next weeks |
For first results see Simple 3D Buildings.
The OSM-3D.org project aims to provide a Web-based interactive 3D view on OpenStreetMap data. It is currently maintained by the University of Heidelberg, GIScience Group http://giscience.uni-hd.de. It is used as a show case to demonstrate the potential of 3D maps as well as how 3D Spatial Data Infrastructures (3D-SDI) can be set up using standardized and open interfaces. The map display goes beyond simply rendering cached tiles that are somehow distorted in order to create a perspective effect. It is based on a scene graph model that incorporates an elevation model and as many OSM features that we could process. This scene graph can be explored using the online viewer XNavigator. Preparing OSM data to be viewed in OSM-3D requires a lot of preprocessing steps which are done on GIScience's servers.
Project home page: http://www.osm-3d.org
Author: User:Aschilli
Data Availability
As the name implies, all of the map features are imported from OSM. We tried to extract all significant features that can be incorporated into a generic all-purpose 3D map. Since OSM does not provide a landscape model, the height information was imported from another source. The elevation model is derived from SRTM (Shuttle Radar Topography Mission) data kindly provided by CGIAR. It has a resolution of ca. 90 m. CGIAR closed many no-data voids that occured in mountaineous regions and on water surfaces using interpolation techniques. The original SRTM data set was not usable for our terrain triangulation package since it relies on homogenously distributed point. The regions at the poles from 60 N to 86 N and 60 S to 86 S where no SRTM data is available have been filled up with GTOPO30 data, a coarser data set with a resolution of ca. 1km.
The terrain is available as rectangular tiles matching the Spherical Mercator reference system from OpenStreetMap. Levels 3 - 13 have been completely processed. Levels 14 - 18 are computed on demand and cached. Hence, if you visit a place for the first time it may take a little longer to load.
Buildings and POIs are processed worldwide and updated on a regular basis.
The combined OSM and SRTM data set is redistributed as Web 3D Service (W3DS). The W3DS is a 3D portrayal service is currently discussed at the Open Geospatial Consortium (OGC) as component for distributing geospatial data encoded in X3D, VRML, Collada, KML and other 3D internet standards. It is designed for providing landscape and city models as well as information layers such as POIs and labels. The W3DS for the OSM-3D project has been made available as reference implementation for the OGC standardization process. More information, a test client, and the interface documentation can be found on
http://www.w3ds.org/doku.php?id=osm-3d_w3ds
Map Features
Map Tiles
All tiles available in Mercator projection can be used. Currently the following styles are available:
- Mapnik
- Osmarender
- Mapquest
- Mapquest Open Aerial
- Integrated DEM Style
Buildings
Buildings are rendered as polyhedra, extruded footprints with flat roofs. The base height is interpolated from the DEM. In OSM, buildings are modeled either as ways representing the footprint at the base or as relations, with an outer ring and 0..n inner rings for courtyards. Inner rings are processed correctly, they are displayed as holes in the polyhedron. Outer rings consisting of more than one way cannot be processed. The bottom and the top are usually flat. Where roof information is available, the algorithm tries to reconstruct the roof geometry from the roof type (e.g. gabled) and alignment. In some cases buildings on steep hillsides cause problems and parts become hanging over the ground. For this reason, walls should not be tagged as buildings. Mostly, height information is not available, so that we have to use a fixed height value, with some random deviation added. If available, the following tags are used in order to construct the building geometries:
Key | Description | Example values | Notes |
---|---|---|---|
height | Approximate height - distance from ground to roof of the building (Roof, not antenna or spire for skyscrapers by default) | By default : meter. For use in 3D apps
Includes well-known abbreviation of a length measure | |
min_height | Approximate height below the building structure | 31 m | Can be used to model complex building structures that have overhanging parts, or bridges. This value specifies the distance from ground to the lower edge of the building structure. The unit is meters unless otherwise specified. Note that when min_height is used, height is still defined as distance from ground to top of the structure. So "bridge" with 3 meters height, where bottom part of the bridge is positioned 100 meters above ground level will have height=103, min_height=100. |
building:min_level | Number of stories between ground and actual first existing floor | 5 | For parts of building that are "floating in air" (actually, they are supported by other building parts that are fixed into ground), number of floors from ground that are not present. So if there is a passage under building, where 5 floors are missing, use building:min_level=5
Note that building:levels still counts floors from the ground, including also those nonexistent "skipped" floors, as can be seen in the explanatory picture number of levels is multiplied by 3 m to estimate the actual height |
building:levels:aboveground | Number of stories of the building | 50 | number of levels is multiplied by 3 m to estimate the actual height |
levels | Number of stories of the building | 50 | Same meaning as above. Number of levels is multiplied by 3 m to estimate the actual height |
Note: Some keys are used redundanty. Measurements in distance units (m, ft) are preferred over number of levels, which can be estimated with 3 meters each.
The order for parsing height keys is as follows: height, building:levels:aboveground, levels.
Please see Building_attributes for a reference of possible building attributes that could be very helpful in achieving realistic city models in the future.
For large buildings is much better to divide them into multiple parts, each with a different height value. Otherwise, the groundplan is just extruded up the top level, which may look odd. Flat roof structures can be modeled very nicely using multiple rings of buildings (actually, this would be parts of a building and we should be looking a different key, but for now, we stick with building). Inclined roofs are not possible.
Good Examples:
Palace of Culture and Science, Warsaw, Poland. http://en.wikipedia.org/wiki/Palace_of_Culture_and_Science,_Warsaw.
Bad Examples:
Obviously there are many.
Eiffel Tower, Paris. Poor Tour Eiffel. Please see DE_talk:OSM-3D#Note_on_using_the_building_tag for comment.
Points of Interest
Points of Interest (POI) are displayed as 3D boxes with the symbol as texture and a text label. POIs are organized in the following layers:
- Money
- Public Facilities
- Health
- Shop
- Traffic
- Eating
- Enjoyment
- Education
- Public Transport
- Post
- Accomodation
Money
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
amenity | atm | amenity | bank | ||||
amenity | bureau_de_change |
This table is a wiki template with a default description in English. Editable here.
Public Facilities
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
amenity | telephone | amenity | toilets | ||||
amenity | courthouse | amenity | police | ||||
amenity | public_building | amenity | townhall | ||||
amenity | fire_station | amenity | place_of_worship | ||||
tourism | information |
This table is a wiki template with a default description in English. Editable here.
Health
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
amenity | hospital | amenity | pharmacy |
This table is a wiki template with a default description in English. Editable here.
Shop
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
shop | supermarket | shop | bakery | ||||
shop | butcher | shop | kiosk |
This table is a wiki template with a default description in English. Editable here.
Traffic
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
amenity | fuel | amenity | parking |
This table is a wiki template with a default description in English. Editable here.
Eating
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
amenity | fast_food | amenity | pub | ||||
amenity | restaurant | amenity | biergarten | ||||
amenity | cafe |
This table is a wiki template with a default description in English. Editable here.
Enjoyment
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
amenity | cinema | amenity | theatre | ||||
amenity | nightclub |
This table is a wiki template with a default description in English. Editable here.
Education
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
amenity | university | amenity | school | ||||
amenity | library | amenity | college |
This table is a wiki template with a default description in English. Editable here.
Public Transport
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
highway | bus_stop | railway | tram_stop | ||||
railway | tram | railway | subway_entrance | ||||
railway | station | amenity | bus_station | ||||
amenity | taxi |
This table is a wiki template with a default description in English. Editable here.
Post
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
amenity | post_box |
|
amenity | post_office |
This table is a wiki template with a default description in English. Editable here.
Accomodation
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
tourism | hotel | tourism | hostel | ||||
tourism | motel | tourism | guest_house |
This table is a wiki template with a default description in English. Editable here.
Labels
Labels (POI) are displayed as 3D text objects. Labels are organized in the following layers:
- Suburb Labels
- Building Labels
- Building Numbers
- County Labels
- Locality Labels
- Village Labels
- Region Labels
- City Labels
- Nature Labels
- Street Labels
Suburb Labels
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
place | suburb | place | airport |
This table is a wiki template with a default description in English. Editable here.
Building Labels
Key | Value | logical operator | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|
building | yes or true | AND | name | any |
This table is a wiki template with a default description in English. Editable here.
Building Numbers
Key | Value | logical operator | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|
building | yes or true | AND | addr:housenumber | any |
This table is a wiki template with a default description in English. Editable here.
County Labels
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
place | county |
This table is a wiki template with a default description in English. Editable here.
Locality Labels
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
place | locality |
This table is a wiki template with a default description in English. Editable here.
Village Labels
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
place | village | place | hamlet |
This table is a wiki template with a default description in English. Editable here.
Region Labels
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
place | region |
This table is a wiki template with a default description in English. Editable here.
City Labels
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
place | city | place | town |
This table is a wiki template with a default description in English. Editable here.
Nature Labels
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
natural | peak |
This table is a wiki template with a default description in English. Editable here.
Street Labels
Street Labels are created from the road network and displayed as separate layer. This layer is also tiled, i.e. labels are not provided as individual features, but as collection of features of a rectangular area. The font size depends on the tile level.
Key | Value | Element | Font Size / Tile Level | |||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|
16 | 15 | 14 | 13 | 12 | 11 | 10 | 9 | 8 | 7 | |||
highway | motorway | 18 | 33.6 | 62.4 | 115.2 | 211.2 | 384 | 768 | 1536 | 3072 | ||
highway | trunk | 12 | 24 | 48 | 96 | 192 | 384 | |||||
highway | primary | 12 | 24 | 48 | 96 | 192 | ||||||
highway | secondary | 12 | 24 | 48 | 96 | |||||||
highway | tertiary | 12 | 24 | 48 | ||||||||
highway | residential | 12 | 24 | |||||||||
highway | living_street | 12 | 24 | |||||||||
highway | service | 12 | 24 | |||||||||
highway | pedestrian | 12 | 24 | |||||||||
highway | footway | 12 | 24 |
This table is a wiki template with a default description in English. Editable here.
Technical Facilities
Some man-made objects can be displayed as 3D symbol since they usually share a similar shape and color.
Key | Value | Element | Rendering | Key | Value | Element | Rendering |
---|---|---|---|---|---|---|---|
man_made | lighthouse | man_made | windmill | ||||
power_source | windgenerator |
This table is a wiki template with a default description in English. Editable here.
Map Functions
Displaying and navigating through the map is not the only purpose of the OSM-3D project. Access to feature information, finding places and routes, importing your own tracks, and other interactions with the map are equally important. Most of these functions have been realized by connecting to specialized geo-services with open OGC interfaces. Using OGC services has the advantage that components can be easily replaced, for instance a third party OGC service working on local, non-OSM data can be plugged in. These services are the actual building blocks of a spatial data infrastructure. However, usually geo services provide 2D data, e.g. a geocoder will provide most likely 2D coordinates. In order to be displayed together with the virtual landscape model, the height must be obtained from an additional source. For this purpose we set up an Elevation Query Service (EQS) which interpolates height values from the DEM. The EQS contains a PostGIS database with triangulated SRTM data.
The following plugins are available in the XNavigator Webstart edition. Some must be enabled in the Panels menu:
Get Feature Info
GetFeatureInfo is an operation of the W3DS. You can click on the map and will receive a list of attributes of the selected feature.
Geocoder
Geocoder is a common component in map applications. It allows to search for places and addresses. The Reverse Geocoder receives coordinates and looks up the address in the database. Click on a building and the address will pop up.
POI Search
Convenient function to search for POIs. All OSM POIs have been categorized, spatially indexed, and stored in a PostGIS data base. Access to this data base is enabled through an OGC Directory Service. The POI search panel ("Yellow Pages") offers a list of all available categories and sub types. Click on the map, specify a search radius, select either a category or a single feature type, and you will see all nearby POIs that match your query.
3D Routing
Routing allows to find shortest or fastest connections between two points. The 3D route service (3DRS) is a special modification of the service used in OpenRouteService. It supports several modi: fastest route for cars, shortest route for cars, routes for pedestrians, and routes for bicycles. All these modes can be used in OSM-3D. The 3DRS delivers, in contrast to the normal RS, 3D line strings in the route description, which can be easier imported and displayed together with the DEM. You can either pick two arbitrary points, or specify addresses for the start and end point.
GPX Import
If you have recorded your own GPS tracks, you can upload the GPX file and display the track in OSM-3D.
Access to Sensor Data
Sensor data can be obtained from an OGC Sensor Observation Service (SOS). The display of sensor data includes a 3D symbol representing the sensor category and a list of values which were recently recorded by the sensor. The SOS contains environmental sensor data collected from another source.
OSM-3D Client Software
The web client that is used in OSM-3D is called XNavigator. It has been mainly developed as client for the W3DS reference implementation, but it also allows access to a couple of complementary OGC services. Hence it is sometimes also referred to as "integrated client", but in the OSM-3D project its main purpose is to fly through the city and landscape models without the need to install or configure anything.
XNavigator can be used in 3 ways:
- as Applet embedded in a webpage. This is the simplest version. Selection and configuration of layers is fixed and cannot be changed. Permalinks can be created and distributed. The Applet provides an External Authoring Interface (EAI) giving a limited access to internal functions. See OSM-3D Applet page for details.
- as Java Webstart. This gives you a complete GUI and full access to layers, settings, and map functionalities, including routing, geocoding, sensor data access and others. As additional navigation mode a 2D overview map can be used.
- as installation. Same as Webstart, but without restrictions. Webstart is running in a sandbox environment with limited access to system resources. With the installation you can also import models from your local hard drive. The installation is sometimes faster than Webstart, therefore it is the recommended version.
XNavigator homepage: http://xnavigator.sourceforge.net/doku.php
Data Updates
It does not update anymore. --Henriko 11:48, 29 April 2011 (BST)
yes, we are doing updates: Buildings, POIs, labels etc. are updated approx. weekly or more often. But: Landuse & streets are only updated occasionally at the moment (very rarely) az 15. July 2011
Some Interesting Places
City of Rostock
The first complete city model in OSM-3D was made available for the City of Rostock. In April 2009, The Land Surveilling Office (Kataster-, Vermessungs- und Liegenschaftsamt - KVL) of Rostock donated all their building data to OSM. The building footprints have been slightly simplified and have an accuracy of <= 1m, which is sufficient for an LOD-1 (see CityGML) city model. On request of the University of Bonn, they also provided building height information which could be imported in August 2009. For more information on the data import see Rostocker Gebäudehöhen Import 2009.
Screenshots
more OSM-3D Screenshots
Servers
OSM-3D is running on several servers installed in the Computing Center of the University of Heidelberg (URZ).
Server | Function | Configuration | System |
---|---|---|---|
rax | Application server
Proxy for internal services |
CPU: 2 x Intel Xeon X5355 @ 2.66GHz
HDD: 2 x 250GB SATA 7.2k in RAID 1 RAM: 16 GB |
Windows Server 2003 Enterprise x64 Edition
Java SE 6 Apache 2.2 HTTP Server Several Apache Tomcats |
feldberg | Data processing server
Used for updates |
CPU: 2 x Intel E5440 @ 2.83GHz, Hyperthreading off
HDD: 2 x 300GB SAS RAM: 48 GB |
Ubuntu
PostGreSQL 8.4 Java SE 7 |
zimba | Database server | CPU: Intel Core 2 Quad Q6700 @ 2.66GHz
HDD: 4 x 2TB SATA 5.4k. 3 of them in S/W RAID 0 RAM: 4 GB |
Debian Squeeze
PostGreSQL 8.4 |
nebelhorn | Update server. Dedicated to building updates | CPU: Intel Pentium Dual-Core @ 2.50GHz
HDD: 250 GB RAM: 2 GB |
Windows XP
Java SE 6 |
This table is a wiki template with a default description in English. Editable here.
Statistics
As of 02/14/2012:
Buildings: 50.043.209 / 76 GB Point Objects: 3.514.446 / 1GB Terrain Tiles: 68.562.212 / 398GB Total Database Size: 475GB Processing Database Size: 1425GB
As of 01/15/2011:
Buildings: 23.262.900 Point Objects: 5.659.070 Terrain Tiles: 120.030.291 / 513GB Total Database Size: 572GB Processing Database Size: 1425GB
As of 07/20/2010:
Buildings: 2.378.301 Point Objects: 5.659.070 W3DS Database Size: 99 GB Processing Database Size: 306 GB
See also
- List of OSM-based services
- OSM-3D_Applet
- Proposed_features/Building_attributes
- 3D_Development
- 3D_Development/Modelling
- 3D_Development/Tagging
- Indoor
- ProposedRoofLines
External links
- http://www.osm-3d.org
- OSM-3D in action: http://www.youtube.com/watch?v=TK85iSeLrGY
- http://srtm.csi.cgiar.org
- http://www.geog.uni-heidelberg.de/giscience.html
- http://www.w3ds.org
- http://xnavigator.sourceforge.net/doku.php
- http://sourceforge.net/projects/xnavigator/
XNavigator | |
---|---|
Author: | User:Aschilli |
License: | GNU General Public License v2 |
Platform: | Java |
Version: | 1.4.1 (2012-02-26) |
Languages: | German and English |
Website: | http://xnavigator.sourceforge.net/doku.php |
Programming language: | Java |
3D OSM viewer using SRTM DEM, Routing with OpenRouteService. |