Authors: | Florian Jurgeit, David Baumgartner |
Revision: | 1.0 |
Date: | 24.07.2016 |
Abstract: | This document describes how to define the content of guideposts based on the Tiroler Wander- und Bergwegekonzept (TWBK) in a standardized JSON-document. |
Copyright: | Florian Jurgeit/David Baumgartner; CC BY https://creativecommons.org/licenses/ |
Based on the the guidelines of Club Arc Alpin (http://www.club-arc-alpin.eu) many alpine countries/regions applied the well known yellow guidepost signs for hikers/mountaineers. The objective JSON-specification defines guideposts based on the "Tiroler Wander- und Bergwegekonzept" (shortcut: TWBK) provided by the government of tyrol (Austria).
Reference: https://www.tirol.gv.at/sport/richtlinien-initiativen/sport-wanderwege-bergwege/
A guidepost JSON-document based on the TWBK (Tiroler Wander- und Bergwegekonzept):
$json = {
"type": "TWBK",
"locID" : "LZ2345",
"locDesc" : "Westliches Ende Parkplatz Ströden","locRespons" : "DAV","locSign" : "Ströden","locAltitude" : 1269,"locLatitude" : 48.2521123542661,"locLongitude" : 14.6310424804688,"ordered" : "12-02-2016","signs" : [{"signID" : 1,"sgnRespons" : "ÖAV Sektion Matrei","signDirection" : 0,"signRow" : [{"rowID" : 1,"targetName" : "Clara Hütte","subTarget" : "über Wasserschaupfad","targetType" : [12,14],"targetTime" : "00:55","routeID" : ["345","23"],"targetDifficulty" : 1},{"rowID" : 2,"targetName" : "Umbalfälle","targetType" : [5],"targetTime" : "00:05","routeID" : ["345"],"targetDifficulty" : 4}]},{"signID" : 2,"signRespons" : "Tourismusverband","signDirection" : 1,"signRow" : [{"rowID" : 1,"targetName" : "Bobojach","subTarget" : "Rad- und Wanderweg","targetType" : [26,12,11],"targetTime" : "01:15","targetDifficulty" : 3}]},{"signID" : 3,"signRespons" : "DAV Sektion Essen","signDirection" : 0,"signRow" : [{"rowID" : 1,"targetName" : "Simonysee","targetType" : [12,22,11,25],"targetTime" : "01:45","routeID" : ["345","23","35"],"targetDifficulty" : 2},{"rowID" : 2,"targetName" : "Türmljoch","targetTime" : "02:45","targetDifficulty" : 1},{"rowID" : 3,"targetName" : "Simonyspitze","targetTime" : "01:30","targetDifficulty" : 3}]}]}
JavaScript Object Notation (JSON), and the terms object, name, value, array, and number, are defined in IETF RFC 4627.
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in IETF RFC 2119.
A Guidepost-JSON document must be encoded in UTF-8.
A
TWBK-JSON-document normally consists one single object
(guidepost-location). This object represents some metadata (e.g.
coordinates of the location, description, ID,...) and all signs on that
location. The key with the name "signs" can be empty (e.g. guidepost
location with only a white location sign). In general each location is
represented as a single document - it's also possible to summarize multiple guiepost-locations as a collection:
var collection = {
"type": "GuidePostCollection",
"features": [.... GuidePosts ....]
}
Object | Datatype | Requirement | Description | Example |
type | String | REQUIRED | Describes the underlying regulation/standard - e.g. Tiroler Wander- und Bergwegekonzept (TWBK), Simplified etc. Necessary for parsing, validating and rendering the JSON-document against the right schema. | TWBK |
locID | String | REQUIRED | Location-ID; This ID may be user-defined or derived from a database (e.g. PK). | AT123456 |
locDesc | String | OPTIONAL | This member allows to describe the location of the guidepost. | West-exit of parking area XXX near the big tree. |
locRespons | String | OPTIONAL | Defines the maintenance responsibility for this guidepost-location (not the trail-responsibility !). | TVB Osttirol |
locSign | String | OPTIONAL | In case the guidepost-location should be equipped with a white location-sign, the keys 'locSign' and 'locAltitude' must have values. This value defines the text on the location-sign. | Ströden |
locAltitude | Number(m) | OPTIONAL | In case the guidepost-location should be equipped with a white location-sign, the keys 'locSign' and 'locAltitude' must have values. This value defines the altitude on the location-sign in meters. | 1450 |
locLatitude | WGS84 decimal | REQUIRED | Defines the y-position (Latitude) of the guidepost location. The value is required and be defined in decimal-degrees (DD). The CRS has to be GCS-WGS84 (epsg:4326). In case of southern hemisphere negative Latitude-coordinates must be used. | 42.123456 |
locLongitude | WGS84 decimal | REQUIRED | Defines the x-position (Longitude) of the guidepost location. The value is required and be defined in decimal-degrees (DD). The CRS has to be GCS-WGS84 (epsg:4326). In case of positions west of Greenwich negative Longitude-coordinates must be used. | 12.468344 |
ordered | String (dd-mm-yyyy) | OPTIONAL | The value must be a string defining a date in the notation dd-mm-yyyy. 'ordered' defines the date the signs have been ordered or installed. | 24-12-2015 |
signs | Array of Objects | OPTIONAL | The array of objects defines the individual signs on the guidepost-location. See "signs obejcts" (2.2) | [{...},{...}] |
Signs are the fundamental elements of a guidepost. Each sign on a guidepost-location must at least have 1 target on it (with a maximum of 3 based on the rules of TWBK). Based on direction and track responsibility signs are separated. General information regarding a sign are the direction (left/right) and the track responsibility for the targets. All content is nested in a separate array of objects (–> signRow).
Object | Datatype | Requirement | Description | Example |
signID | number (auto) | REQUIRED | Defines the position (order) of the sign on the guidepost - starting with 1 as the most top one. | 1 |
signRespons | String | OPTIONAL | Trail-Responsibility for the targets on this sign. | OeAV Matrei |
signDirection | Number ( 0 | 1 ) | REQUIRED | Direction (arrow) of the sign in coded values. | 0 = left, 1 = right |
signRow | Array of Objects | REQUIRED | Nested objects defining the dedicated targets of the sign. Has to be at least one and at most three. | [{...},{...}] |
signRow (Array of objects):
Object | Datatype | Requirement | Description | Example |
rowID | Number (0 < auto <= 3) | OPTIONAL | Defines the target's position on the sign. Starting with 1 as the most top one. | 1-3 |
targetName | String | REQUIRED | Name of a target the dedicated sign is guiding to. This key must be defined, otherwise a guidepost-sign would not be necessary. | Clara Hütte |
subTarget | String | OPTIONAL | Optional second line (smaller letters) with reference to the target. | über Fahrweg |
targetType | Array of Numbers | OPTIONAL | Symbols ("Piktogramm") with reference to the target. E.g. cable-car, eat/drink, waterfall,... - valid target-types (symbols) based on TWBK are listed in the appendix. Each number defines a TargetType (symbol). | [12, 15, ...] |
targetTime | String Format (hh:mm) | OPTIONAL | Time to reach the target. Format: hh:mm | 02:30 |
routeID | Array of strings | OPTIONAL | [345, 23a, ...] | |
targetDifficulty | Number ( 0 | 1 | 2 | 3 | REQUIRED | Describes
the hiker's requirements to reach the target based on the trail
specifications described in TWBK. The TargetDifficulty must be defined
and is coded in values ( 0 = low(WW), 1 = medium(RB), 2 = high(SB), 3 = extreme(AR), 4 = snow(SN) - Winterwanderweg/winter hiking trail). 0 = WW = Wanderweg ("normal simple hiking trai") 1 = RB = Roter Bergweg ("red categorized trail") 2 = SB = Schwarzer Bergweg ("black categorized trail") 3 = AR = Alpine Route (e.g. crossing glaciers with no dedicated track) 4 = SN = Winterwanderweg ("winter hiking trail") | 0 = low(WW), 1 = medium(RB), 2 = high(SB), 3 = extreme(AR) 4 = snow(SN) - Winterwanderweg (winter hiking trail) |
In some cases it is also valuable to nest Guidepost-JSON documents into a GeoJSON-Object (http://geojson.org/) - e.g. working with spatial datatypes in MongoDB.
Guideposts are represented by the geometry-type "point" in GeoJSON.
{
"type" : "Feature",
"properties" : {
"type": "TWBK",
"locID" : "LZ2345",
"locDesc" : "Ende Parkplatz Ströden",
"locRespons" : "DAV Sektion xx",
"locSign" : "Ströden",
"locAltitude" : 1269,
"locLatitude" : 48.2521123542661,
"locLongitude" : 14.6310424804688,
"ordered" : "12-02-2016",
"signs" : [
{
"signID" : 1,
"signRespons" : "ÖAV Sektion Matrei",
"signDirection" : 0,
"signRow" : [
{
"rowID" : 1,
"targetName" : "Clara Hütte",
"subTarget" : "über Wasserschaupfad",
"targetType" : [
12,
14
],
"targetTime" : "00:55",
"routeID" : [
"345",
"23"
],
"targetDifficulty" : 1
},
{
"rowID" : 2,
"targetName" : "Umbalfälle",
"targetType" : [
5
],
"targetTime" : "00:30",
"routeID" : [
"345"
],
"targetDifficulty" : 4
}
]
},
{
"signID" : 2,
"signRespons" : "TVB Osttirol",
"signDirection" : 1,
"signRow" : [
{
"rowID" : 1,
"targetName" : "Gletscherhütte",
"subTarget" : "über Wasserhütte",
"targetType" : [
26,
12,
11
],
"targetTime" : "02:45",
"targetDifficulty" : 3
}
]
},
{
"signID" : 3,
"signRespons" : "DAV Sektion xx",
"signDirection" : 0,
"signRow" : [
{
"rowID" : 1,
"targetName" : "Wanderhaus",
"targetType" : [
12,
22,
11,
25
],
"targetTime" : "01:45",
"routeID" : [
"345",
"23",
"35"
],
"targetDifficulty" : 0
},
{
"rowID" : 2,
"targetName" : "Wanderhaus2",
"targetTime" : "02:45",
"targetDifficulty" : 1
},
{
"rowID" : 3,
"targetName" : "Wanderhaus3",
"targetTime" : "01:30",
"targetDifficulty" : 2
}
]
}
]
},
"geometry" : {
"type" : "Point",
"coordinates" : [
14.6310424804688,
48.2521123542661
]
}
}
Symbols ("Piktogramm") with reference to the target. E.g. cable-car, eat/drink, waterfall,... - valid target-types (symbols) based on TWBK are listed below. Each number defines a TargetType (symbol).
Sample-Symbols: The attached symbols are just examples and not obligatory!
targetType ID | german description | description | |
01 | Hütte m. ÜN | alpine lodge (with overnight) | |
02 | Essen/Trinken | eat/drink | |
03 | Jausenstation | simple eat/drink ("snack") | |
04 | Biwak | biwak | |
05 | Haltestelle | bus-stop | |
06 | Gondelbahn | cable-car | |
07 | Parkplatz | parking | |
08 | Taxizubringer | cab/shuttle | |
09 | Sessellift | chairlift | |
11 | Lehrweg | nature trail | |
12 | Info | information | |
14 | Besucherzentrum | visitor center | |
15 | Camping | camping | |
21 | Kirche | church | |
22 | Burg/Schloss | castle, ruin | |
25 | Mühle | mill | |
26 | Wasserfall | waterfall | |
98 | Winterwanderweg | winter hiking trail ("Difficulty Symbol") | |
99 | Alpine Route Symbol | Alpine Route |