Proposed features/Elevation and height

From OpenStreetMap Wiki
Jump to: navigation, search
Elevation and Height Tools
Status: Draft (under way)
Proposed by: Rw
Tagging: height=various
Applies to: node/way/area/DataLayer
Definition: A set of height and elevation tools is proposed.
Rendered as: *
Drafted on:
Proposed on: 2008-08-15
RFC start: 2008-08-15
Vote start: 2008-09-15
Vote end: *

Executive Summary

A set of elevation tags and tools is proposed for OpenStreetMap. These tools will allow users to view and manipulate elevation data in a way that is useful to them without our previous knowledge of their intentions.

Background and Motivation

OpenStreetMap provides a wonderful slippy map interface to OSM mapping data. The slippy map is useful for many typical map users that want to know, “How do I get from A to B?” or “Do I want to turn left or right when I exit the highway.” The slippy map provides a picture of the OSM data in the form of map tiles that are useful across many devices and use cases.

One of the critically important aspects of OSM is that it doesn't stop with just providing a picture of the data. OSM allows access to the raw map data so that atypical users can do weird and wonderful things that weren't anticipated in the initial plans for OpenStreetMap. Users can use the map data, not just look at a picture of that data. It is that access to the real map data that makes wonderful OSM off-shoots like the cycle map possible.

The cycle map takes OSM data and re-renders it with a custom OSM rendering rules. The cycle map emphasizes bicycle-friendly items like posted bike routes, cycle shops and bike racks, while de-emphasizing bicycle-hostile items like super-highways. Highways are still shown since they can be an important landmark, but the map emphasizes the routes that cyclists want to use.

The cycle map also includes contour lines to show elevation changes. The NASA SRTM mission provides public domain elevation data for a large portion of the world. That elevation data is used in the cycle map renderer to generate contour lines. Those contour lines are a useful feature for cyclists and hikers that want to know how much steep climbing they can look forward to on their trip. Just as the OSM Slippy Map provides a picture of the map data to the typical user, the cycle map provides a picture of elevation data to the typical user.

It is time to take a step further and make use of the underlying elevation data, rather than limiting ourselves to looking at a picture of the elevation data.

Proposed Basic Elevation tools for OSM

Elevation at a point

The simplest use case is “tell me what the elevation is at this point.” The slippy map elevation tool will read elevation data from the data base and display the elevation at a selected point of interest.

OUTPUT {nodeID,} lat, lon, elevation

Elevation of a point with height parameter

Take the basic case of the elevation of the ground and add the height of the point of interest. Return a final elevation of the combined values. When multiple height parameters are provided, make them available.

building = yes
name = CN Tower
height = 553.3
height:SkyPod = 446.5
height:Restaurant = 350.8
man_made = tower
name = West Guilford communication antenna
height = 100
height:Ant1E = 90
height:Ant1W = 89
height:Ant2N = 88
height:Ant2S = 83

Elevation at multiple points

Multiple POIs are selected and the tool displays the elevation at each point.

INPUT nodeID [, nodeID] ...
OUTPUT [nodeID,] lat, lon, elevation {[, nodeID], lat, lon, elevation} ...

Elevation profile along a way

The user selects a way and the elevation tool returns all of the elevation data associated with that way. The data is provided as a series of elevations and / or statistics. Hikers and cyclists want to know how much climbing and descending they face on a trip. Freight companies may want to compare highway routes for the flattest routes to decrease fuel use.

INPUT wayID [max number of values to return] 
OUTPUT [wayID,] [number of values returned,] lat, lon, elevation {, lat, lon, elevation} ... [min] [max] [accumulated climb] [accumulated descent]

Elevation profile graph

Return the elevation along a way data as a graph. Cool data like this wants to be displayed as a picture. Elevation profile graphs are great for stages in the Tour de France and interesting to hikers, cyclists, cross country and downhill skiers.

Elevation profile on a relation / route

Extend the elevation profile tool to work with collections of ways like relations, or routes.

Elevation profile along a relation / route as a graph

Extend the elevation profile tool to work with collections of ways like relations, or routes.

Proposed Intermediate Elevation Tools for OSM

Line of Sight

Hey, Peter, I can see your house from here!

Line of sight calculations are interesting for communication and privacy. Is this antenna tower in the right place? How tall should I grow my hedge? With basic elevation and height functions from above, line of sight is just another step away.

Point to Point

Select two points of interest and ask if they can see each other? An answer is great and a picture of the answer is even more interesting.

INPUT [POI1 POI2] [lat1, lon1, elevation1, height1, lat2 lon2, elevation2, height2] 
OUTPUT [bool] [profile graph]

Point to Way

Select a POI and a way. Can the POI be seen from any location along that way? Will the car headlights form the highway shine into my bedroom windows?

Point to Area

Can this hotel room see the marina? What percentage of the marina?

Area to Area

The Hatfields and the McCoys have had enough of the quarreling. They decide to build a hedgerow so that their property can't be seen from the other property. How tall must the hedgerow be?

Proposed Advanced Elevation Tools for OSM

Line of Sight Heatmap

How about a heat map showing how much of each area can be observed by what proportion of the other?

What's your denominator in "proportion"? Should, for instance, Alaska be in the denominator for every area in Russia? Ipofanes 16:49, 17 December 2008 (UTC)


This Route profiles GSOC project addresses part of this request / proposal.