User:Glodenox/Waze Data Model View history

(Initial page with just the Segment data added)
 
(Added the remaining objects)
 
(6 intermediate revisions by the same user not shown)
Line 3: Line 3:


== Graphical overview ==
== Graphical overview ==
TODO
[[File:Waze data model.png|center|The publicly visible part of the Waze Data Model]]


== Object descriptions ==
== Object descriptions ==


Several properties have been left out as these do not contribute to the understanding of the Waze object model.
Some properties have been left out as these do not contribute to the understanding of the Waze object model.


=== Segment ===
=== Segment ===
Line 32: Line 32:
|-
|-
| '''fwdMaxSpeed''', '''revMaxSpeed''' || integer, optional || the speed limit in the forward/reverse direction on the segment
| '''fwdMaxSpeed''', '''revMaxSpeed''' || integer, optional || the speed limit in the forward/reverse direction on the segment
|-
|'''restrictions''' || array[object], optional || a list of restrictions for one or more vehicle types in one or more time periods
|-
|-
| '''fwdToll''', '''revToll''' || boolean || whether or not toll is levied in the forward/reverse direction of the segment
| '''fwdToll''', '''revToll''' || boolean || whether or not toll is levied in the forward/reverse direction of the segment
Line 46: Line 48:
|-
|-
| '''createdOn''', '''updatedOn''' || integer || timestamp indicating when this segment was created/last updated
| '''createdOn''', '''updatedOn''' || integer || timestamp indicating when this segment was created/last updated
|}
=== Node ===
{| class="wikitable"
|-
! Attribute !! Type !! Description
|-
| '''id''' || integer || identification number
|-
| '''geometry''' || GeoJSON Point || geographical representation of the line describing this node
|-
| '''segIDs''' || array[integer] || a list of segments that connect to this node
|-
| '''connections''' || array[object] || a list of allowed connections between segments containing:
* the turn instruction override
* whether the turn should be considered a difficult turn or not
* the vehicle restrictions and/or time restrictions for that connection
|}
=== Street ===
{| class="wikitable"
|-
! Attribute !! Type !! Description
|-
| '''id''' || integer || identification number
|-
| '''name''' || string || name in local language
|-
| '''englishName''' || string, optional || alternative version of the street name in English
|-
| '''cityID''' || integer, optional || reference to the city of this street
|-
| '''signText''' || string, optional || text to show on a road badge
|}
=== City ===
{| class="wikitable"
|-
! Attribute !! Type !! Description
|-
| '''id''' || integer || identification number
|-
| '''geometry''' || GeoJSON Point || geographical representation of the line describing this node
|-
| '''name''' || string || name in local language
|-
| '''englishName''' || string, optional || alternative version of the city in English
|-
| '''countryID''' || integer || reference to the country of this city
|}
=== Country ===
{| class="wikitable"
|-
! Attribute !! Type !! Description
|-
| '''id''' || integer || identification number
|-
| '''name''' || string || name in local language
|-
| '''abbr''' || string || abbreviation used for this country
|-
| '''leftHandTraffic''' || boolean || whether or not traffic rides on the left in this country
|-
| '''env''' || string || which server environment this country belongs to (ROW, NA, or IL)
|-
| '''ttsLocales''' || array[object] || list of text-to-speech engines enabled for this country
|-
| '''​allowAverageSpeedCameras''' || boolean || whether users may add average speed cameras in this country
|-
| '''​allowAverageSpeedCamerasRank''' || integer || minimum rank needed for users to add average speed cameras in this country
|-
| '''​allowHeadlightsReminder''' || boolean || whether users may add headlight reminders in this country
|-
| '''​allowHeadlightsReminderRank''' || integer || minimum rank needed for users to add headlight reminders in this country
|-
| '''​allowSpeedCams''' || boolean || whether users may add speed cameras in this country
|-
| '''​allowCamerasRank''' || integer || minimum rank needed for users to add speed cameras in this country
|-
| '''​allowHeadlightsReminderRank''' || integer || minimum rank needed for users to add headlight reminders in this country
|-
| '''​allowRoadClosureRank''' || integer || minimum rank needed for users to add road closures in this country
|-
| '''​forceHouseNumberRank''' || integer || minimum rank needed for users to force house numbers in this country
|-
| '''​allowNewCitiesRank''' || integer || minimum rank needed for users to add new cities in this country
|-
| '''​updateJunctionBoxRank''' || integer || minimum rank needed for users to update junction boxes in this country
|}
=== Road Closure ===
{| class="wikitable"
|-
! Attribute !! Type !! Description
|-
| '''id''' || integer || identification number
|-
| '''reason''' || string || textual explanation why this closure has been added
|-
| '''segID''' || integer || reference to the segment that is affected by this closure
|-
| '''forward''' || boolean || indicates in which direction the closure is active (a two-way closure is stored as two one-way closures)
|-
| '''startDate''' || date || date + hours from when this road closure becomes active
|-
| '''endDate''' || date || date + hours until when this road closure stays active
|-
| '''eventId''' || integer, optional || reference to a major traffic event
|-
| '''createdBy''', '''updatedBy''' || integer || reference to the user who created/last updated this road closure
|-
| '''createdOn''', '''updatedOn''' || integer || timestamp indicating when this road closure was created/last updated
|-
| '''permanent''' || boolean || whether this road closure should take into account nearby traffic flows to disable itself
|}
=== Major Traffic Event ===
{| class="wikitable"
|-
! Attribute !! Type !! Description
|-
| '''id''' || string || identification number
|-
| '''names''' || array[name] || the list of localized names (the presence of an English name is mandatory)
|-
| '''startDate''' || string || the day this major traffic event starts on
|-
| '''endDate''' || string || the day this major traffic event ends on
|-
| '''category''' || string || the category under which this major traffic event is added
|-
| '''cityID''' || integer, optional || reference to the city to which this event is assigned
|-
| '''contributors''' || array[integer] || references to the users who have added one or more of the affected road closures
|-
| '''partners''' || array[integer] || the list of Waze Event Partners involved in creating this event
|-
| '''url''' || string, optional || a link to the web page explaining the event
|-
| '''uniqueName''' || string || a shortened name that will be used in the Waze Event Page URL (waze.com/mte/{uniqueName})
|-
| '''ready''' || boolean || whether all mandatory fields have been filled in and at least one road closure has been connected
|-
| '''published''' || boolean || whether this event has been submitted and has become visible on the MTE overview page
|-
| '''tweetText''' || string || text to be used in the announcement tweet
|-
| '''tweetText''' || string || text to be used in the announcement tweet (Waze Event Partners only)
|-
| '''twitterAccountUrls''' || array[string] || the list of Twitter accounts that will be tweeting about this event (Waze Event Partners only)
|-
| '''createdBy''', '''updatedBy''' || integer || reference to the user who created/last updated this event
|-
| '''createdOn''', '''updatedOn''' || integer || timestamp indicating when this event was created/last updated
|}
=== House Number ===
{| class="wikitable"
|-
! Attribute !! Type !! Description
|-
| '''id''' || integer || identification number
|-
| '''geometry''' || GeoJSON Point || the location of the house number
|-
| '''number''' || string || the house number
|-
| '''isLeft''' || boolean || whether the house number is located on the left of the segment (following the house numbers in a descending order(?))
|-
| '''side''' || [1, 2] || whether the house number is located on the left of the segment (following the segment from start to end)
|-
| '''closestSegment''' || segment || reference to the segment located closest to this house number
|-
| '''updatedBy''' || integer || reference to the user who last updated this house number
|-
| '''forced''' || boolean || whether or not the position of this house number was forced by the user (usually it didn't follow the incremental order)
|-
| '''fractionPoint''' || GeoJSON Point || the geographical location on the closest segment where users should be routed to when navigating to this house number
|}
=== Junction ===
{| class="wikitable"
|-
! Attribute !! Type !! Description
|-
| '''id''' || integer || identification number
|-
| '''geometry''' || GeoJSON Point || the geographic center of the junction
|-
| '''segIDs''' || array[integer] || the list of segments included in this junction
|}
=== Big Junction ===
{| class="wikitable"
|-
! Attribute !! Type !! Description
|-
| '''id''' || integer || identification number
|-
| '''geometry''' || GeoJSON Polygon || polygon indicating the boundary of the junction box
|-
| '''cityID''' || integer || reference to the city this junction is located in
|-
| '''name''' || string, optional || the name assigned to the junction box
|-
| '''lock''' || integer || minimum level required to edit this junction box
|-
| '''segIDs''' || array[integer] || the list of segments included in this junction
|-
| '''createdOn''', '''updatedOn''' || integer || timestamp indicating when this road closure was created/last updated
|}
=== Venue ===
{| class="wikitable"
|-
! Attribute !! Type !! Description
|-
| '''id''' || integer || identification number
|-
| '''geometry''' || GeoJSON Point || point indicating the location of the venue
|-
| '''name''' || string || the name of the venue
|-
| '''aliases''' || array[string] || the list of alternative names for this venue
|-
| '''streetID''' || integer || reference to the street
|-
| '''houseNumber''' || string || the house number of this venue
|-
| '''phone''' || string, optional || the telephone number of this venue
|-
| '''url''' || string, optional || the URL of the website of this venue
|-
| '''categories''' || array[string] || the list of categories this venue belongs to
|-
| '''approved''' || boolean || whether this place has been approved after having been added by a new editor
|-
| '''brand''' || string || the name of the brand of this place (usually used for petrol stations)
|-
| '''description''' || string || a textual description of the venue
|-
| '''residential''' || boolean || whether this venue is residential (only visible to users if navigating to that specific address)
|-
| '''entryExitPoints''' || array[object] || a list of points that indicate entry and exit points for this venue
|-
| '''externalProviderIDs''' || array[object] || a list of identifiers that refer to external sources, such as Google Places
|-
| '''adLocked''' || boolean || whether this place has been locked for editing due to a running advertisement campaign
|-
| '''images''' || array[object] || the list of images connected to this venue
|-
| '''services''' || array[object] || the list of services available at this venue
|-
| '''openingHours''' || array[object] || the list of opening hours of this venue
|-
| '''venueUpdateRequests''' || array[object] || the list of venue update requests pertaining to this venue
|-
| '''lockRank''' || integer || the minimum editing rank necessary to make changes to this venue
|-
| '''createdOn''', '''updatedOn''' || integer || timestamp indicating when this venue was created/updated
|-
| '''createdBy''', '''updatedBy''' || integer || reference to the user who last created/updated this venue
|}
|}

Latest revision as of 22:11, 18 March 2018

This information is not required to know how to work with the Waze Map Editor. This information might be useful if you plan on writing a userscript.
This is not an official version of the data model used in Waze. This model has been based on the information provided within the WME.

Graphical overview

The publicly visible part of the Waze Data Model
The publicly visible part of the Waze Data Model

Object descriptions

Some properties have been left out as these do not contribute to the understanding of the Waze object model.

Segment

Attribute Type Description
id integer identification number
geometry GeoJSON LineString geographical representation of the line describing this segment
fromNodeID, toNodeID integer reference to the node this segment is connected to at the start/end
virtualNodeIDs array[integer] list of references to nodes of walking segments connecting to this segment
primaryStreetID integer reference to the street set as primary name
streetIDs array[integer] list with references to alternative streets assigned to this segment
junctionID integer, optional reference to the junction this segment is a part of
fwdDirection, revDirection boolean whether or not this segment can be traversed in the forward/reverse direction
fwdMaxSpeed, revMaxSpeed integer, optional the speed limit in the forward/reverse direction on the segment
restrictions array[object], optional a list of restrictions for one or more vehicle types in one or more time periods
fwdToll, revToll boolean whether or not toll is levied in the forward/reverse direction of the segment
level integer indication of height compared to other segments (0 = Ground)
lockRank integer minimum level required for a user to modify this segment
roadType integer the type of road this segment describes (street, primary street, minor highway, major highway, ...)
routingRoadType integer, optional this attribute overrides the road type for navigation purposes
createdBy, updatedBy integer reference to the user who created/last updated this segment
createdOn, updatedOn integer timestamp indicating when this segment was created/last updated

Node

Attribute Type Description
id integer identification number
geometry GeoJSON Point geographical representation of the line describing this node
segIDs array[integer] a list of segments that connect to this node
connections array[object] a list of allowed connections between segments containing:
  • the turn instruction override
  • whether the turn should be considered a difficult turn or not
  • the vehicle restrictions and/or time restrictions for that connection

Street

Attribute Type Description
id integer identification number
name string name in local language
englishName string, optional alternative version of the street name in English
cityID integer, optional reference to the city of this street
signText string, optional text to show on a road badge

City

Attribute Type Description
id integer identification number
geometry GeoJSON Point geographical representation of the line describing this node
name string name in local language
englishName string, optional alternative version of the city in English
countryID integer reference to the country of this city

Country

Attribute Type Description
id integer identification number
name string name in local language
abbr string abbreviation used for this country
leftHandTraffic boolean whether or not traffic rides on the left in this country
env string which server environment this country belongs to (ROW, NA, or IL)
ttsLocales array[object] list of text-to-speech engines enabled for this country
​allowAverageSpeedCameras boolean whether users may add average speed cameras in this country
​allowAverageSpeedCamerasRank integer minimum rank needed for users to add average speed cameras in this country
​allowHeadlightsReminder boolean whether users may add headlight reminders in this country
​allowHeadlightsReminderRank integer minimum rank needed for users to add headlight reminders in this country
​allowSpeedCams boolean whether users may add speed cameras in this country
​allowCamerasRank integer minimum rank needed for users to add speed cameras in this country
​allowHeadlightsReminderRank integer minimum rank needed for users to add headlight reminders in this country
​allowRoadClosureRank integer minimum rank needed for users to add road closures in this country
​forceHouseNumberRank integer minimum rank needed for users to force house numbers in this country
​allowNewCitiesRank integer minimum rank needed for users to add new cities in this country
​updateJunctionBoxRank integer minimum rank needed for users to update junction boxes in this country

Road Closure

Attribute Type Description
id integer identification number
reason string textual explanation why this closure has been added
segID integer reference to the segment that is affected by this closure
forward boolean indicates in which direction the closure is active (a two-way closure is stored as two one-way closures)
startDate date date + hours from when this road closure becomes active
endDate date date + hours until when this road closure stays active
eventId integer, optional reference to a major traffic event
createdBy, updatedBy integer reference to the user who created/last updated this road closure
createdOn, updatedOn integer timestamp indicating when this road closure was created/last updated
permanent boolean whether this road closure should take into account nearby traffic flows to disable itself

Major Traffic Event

Attribute Type Description
id string identification number
names array[name] the list of localized names (the presence of an English name is mandatory)
startDate string the day this major traffic event starts on
endDate string the day this major traffic event ends on
category string the category under which this major traffic event is added
cityID integer, optional reference to the city to which this event is assigned
contributors array[integer] references to the users who have added one or more of the affected road closures
partners array[integer] the list of Waze Event Partners involved in creating this event
url string, optional a link to the web page explaining the event
uniqueName string a shortened name that will be used in the Waze Event Page URL (waze.com/mte/{uniqueName})
ready boolean whether all mandatory fields have been filled in and at least one road closure has been connected
published boolean whether this event has been submitted and has become visible on the MTE overview page
tweetText string text to be used in the announcement tweet
tweetText string text to be used in the announcement tweet (Waze Event Partners only)
twitterAccountUrls array[string] the list of Twitter accounts that will be tweeting about this event (Waze Event Partners only)
createdBy, updatedBy integer reference to the user who created/last updated this event
createdOn, updatedOn integer timestamp indicating when this event was created/last updated

House Number

Attribute Type Description
id integer identification number
geometry GeoJSON Point the location of the house number
number string the house number
isLeft boolean whether the house number is located on the left of the segment (following the house numbers in a descending order(?))
side [1, 2] whether the house number is located on the left of the segment (following the segment from start to end)
closestSegment segment reference to the segment located closest to this house number
updatedBy integer reference to the user who last updated this house number
forced boolean whether or not the position of this house number was forced by the user (usually it didn't follow the incremental order)
fractionPoint GeoJSON Point the geographical location on the closest segment where users should be routed to when navigating to this house number

Junction

Attribute Type Description
id integer identification number
geometry GeoJSON Point the geographic center of the junction
segIDs array[integer] the list of segments included in this junction

Big Junction

Attribute Type Description
id integer identification number
geometry GeoJSON Polygon polygon indicating the boundary of the junction box
cityID integer reference to the city this junction is located in
name string, optional the name assigned to the junction box
lock integer minimum level required to edit this junction box
segIDs array[integer] the list of segments included in this junction
createdOn, updatedOn integer timestamp indicating when this road closure was created/last updated

Venue

Attribute Type Description
id integer identification number
geometry GeoJSON Point point indicating the location of the venue
name string the name of the venue
aliases array[string] the list of alternative names for this venue
streetID integer reference to the street
houseNumber string the house number of this venue
phone string, optional the telephone number of this venue
url string, optional the URL of the website of this venue
categories array[string] the list of categories this venue belongs to
approved boolean whether this place has been approved after having been added by a new editor
brand string the name of the brand of this place (usually used for petrol stations)
description string a textual description of the venue
residential boolean whether this venue is residential (only visible to users if navigating to that specific address)
entryExitPoints array[object] a list of points that indicate entry and exit points for this venue
externalProviderIDs array[object] a list of identifiers that refer to external sources, such as Google Places
adLocked boolean whether this place has been locked for editing due to a running advertisement campaign
images array[object] the list of images connected to this venue
services array[object] the list of services available at this venue
openingHours array[object] the list of opening hours of this venue
venueUpdateRequests array[object] the list of venue update requests pertaining to this venue
lockRank integer the minimum editing rank necessary to make changes to this venue
createdOn, updatedOn integer timestamp indicating when this venue was created/updated
createdBy, updatedBy integer reference to the user who last created/updated this venue