OpenHistoricalMap/Proposals/Image Viewpoint

From OpenStreetMap Wiki
Jump to navigation Jump to search

Introduction

OpenHistoricalMap currently provides a mechanism for attaching images of objects to the objects, and this mechanism is quite effective. However, there is an apparent need for a way to handle images that show general viewscapes as distinct from images of specific objects. This proposals describes a generalized mechanism that can be extended to handle a variety of images.

Tagging Example

Create a node at the latitude & longitude where the image was made. Then use these these tags to specify the details of the image.

viewpoint=image

image:1=http://www.example.com/some_image_or_other.jpg

image:1:caption=My image which is all mine

image:1:license=CC0

compass_direction=90 degrees

no more is needed for most cases. you can additionally specify the height at which the camera was positioned,

height=1.8 meters

and other parameters like focal length, although those are rarely used and currently not supported. Wikimedia Commons is a great place to upload images to if you wish to use a permissive license.

Camera Models

Camera Modeling as practiced by Photogrammeters and others involves a 7 parameter model to describe images that correspond to pinhole cameras. Most cameras in normal use correspond to the pinhole model. These parameters consist of 3 parameters describing translations from some origin point to the physical location of the camera, 3 parameters describing how the camera is rotated into its position, and one parameter describing the relationship between the focal length and the image size. It is fairly easy to use this model, with well chosen defaults, as the basis for a tagging scheme which is easy to use but still quite capable.

Translations

Conceptually these are very easy to handle. A node in OpenHistoricalMap/OpenStreetMap already has a latitude and longitude reflecting a location in space; this is sufficient. A height parameter representing a translation on the z axis should be handled, with a default corresponding to an average human's eye level as that is most likely where they are holding a camera - or in the case of an old postcard, looking while they create the illustration.

Rotations

Conventionally, photogrammters use the 3 [Angles], with the names ω, φ, and κ (other greek letters are used in other contexts.) The default camera is aimed at the ground. The first angle rotates around the X-Axis (latitude lines) and setting ω to 90 degrees produces a camera aimed north. φ then rotates around the vertical axis, and finally κ will take care of any tilt to the camera. Practically, a default of 90 degrees for ω and having the user set φ to the compass direction will take care of the vast majority of cases, so ω and κ can default most of the time.

Focal Length

The "normal" focal length conventionally defaults to a the view of the mark 1 human eyeball. The 50mm lens commonly considered "normal" for 35mm film cameras is actually slightly telephoto. The default focal length needs to be expressed as a ratio to the size of the image plane (negative size in conventional film cameras) and should be slightly higher than 1. Many digital cameras will include enough EXIF data to compute this precisely, but older imagery and (for example) postcard illustrations will not. But a default of "normal" will work for much of that.

The Model

An OSM node will carry the physical location of the camera. A height tag with a default of average eye level will handle the vertical position.

The three angles will all be settable, but sound defaults means that only the compass direction of the line of sight really needs to be set. The tag for this might just be "compass".

Focal length, again, can be computed from EXIF data or supplied manually if it is deviates from norms.

Implementation

Camera viewpoints should not be rendered in the basic OHM view, and not be selectable in the basic OHM view. They should appear in the data overlay, and be highlighted when the query button is selected as things that will respond to clicks.