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/

 

1 Introduction

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/

 

1.1. Example

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
                    }
                ]
            }
        ]
    }

1.2. Definitions

2 TWBK JSON Objects

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 ....]

}

2.1 Metadata objects

 

ObjectDatatype

Requirement

DescriptionExample

type

StringREQUIREDDescribes 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

REQUIREDLocation-ID; This ID may be user-defined or derived from a database (e.g. PK).

AT123456

locDesc

String

OPTIONALThis member allows to describe the location of the guidepost.

West-exit of parking area XXX near the big tree.

locRespons

String

OPTIONALDefines the maintenance responsibility for this guidepost-location (not the trail-responsibility !).

TVB Osttirol

locSign

String

OPTIONALIn 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)

OPTIONALIn 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

REQUIREDDefines 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

REQUIREDDefines 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)

OPTIONALThe 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

OPTIONALThe array of objects defines the individual signs on the guidepost-location. See "signs obejcts" (2.2)

[{...},{...}]

2.2 Signs objects

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).

 ObjectDatatypeRequirementDescriptionExample

signID

number (auto)

REQUIREDDefines 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 )

 REQUIREDDirection (arrow) of the sign in coded values.

0 = left,

1 = right

signRow

Array of Objects

 REQUIREDNested objects defining the dedicated targets of the sign. Has to be at least one and at most three.[{...},{...}]

 

signRow (Array of objects):

 ObjectDatatypeRequirementDescriptionExample

rowID

Number (0 < auto <= 3)

OPTIONALDefines the target's position on the sign. Starting with 1 as the most top one.1-3

targetName

String

REQUIREDName 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

OPTIONALOptional second line (smaller letters) with reference to the target.

über Fahrweg

targetType

Array of Numbers

OPTIONALSymbols ("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)

OPTIONALTime to reach the target. Format: hh:mm

02:30

routeID

Array of strings

OPTIONAL

Official numbers of the trail(s) to the dedicated target.  

[345, 23a, ...]

targetDifficulty

Number ( 0 | 1 | 2 | 3
| 4 )

REQUIREDDescribes 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)

 

3 TWBK JSON as GeoJSON property

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.

3.1. Example 

{
    "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
        ]
    }
}

 

4 Appendix

Symbolset

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).

targetType IDgerman descriptiondescription 
 01Hütte m. ÜNalpine lodge (with overnight)
02Essen/Trinkeneat/drink
03Jausenstationsimple eat/drink ("snack")
04Biwakbiwak
05Haltestellebus-stop
06Gondelbahncable-car
07Parkplatzparking
08Taxizubringercab/shuttle
09Sesselliftchairlift
11Lehrwegnature trail
12Infoinformation
14Besucherzentrumvisitor center
15Campingcamping
21Kirchechurch
22Burg/Schlosscastle, ruin
25Mühlemill 
26Wasserfallwaterfall
    
98Winterwanderweg
winter hiking trail ("Difficulty Symbol")
99Alpine Route Symbol

Alpine Route