The FeatureLayer technology expands the routing network with new data content, and enables the processing of large amounts of data that decisively affect route planning.
To handle different kind of additional routing relevant information, the technology allows the definition of multiple layers. Each of these layers carries information which is important for and has influence on routing. The layers can be combined, individually selected and prioritized. Conflict-handling mechanisms ensure that more important layers (e.g. preferred routes) have a stronger impact on routing than layers with lower priority (e. g. restriction zones). The FeatureLayer can be controlled with the snippet mechanism. This means that with only a few parameters, a client-side request defines which layers are to be considered, and how (e.g. prioritization of several layers).
The data can be provided as
FeatureLayer technology is available for some PTV xServer:
PTV FeatureLayer | Routing | Rendering |
---|---|---|
Time Zones FL | PTV xRoute ≥ 1.17 PTV xTour, xDima, xCluster ≥ 1.18.1 | N/A |
Preferred Routes FL | PTV xRoute ≥ 1.17 PTV xTour, xDima, xCluster ≥ 1.18.1 | PTV xMap ≥ 1.18.1 |
Truck Restriction Zones FL | PTV xRoute ≥ 1.18.1 PTV xTour, xDima, xCluster ≥ 1.18.1 | PTV xMap ≥ 1.18.1 |
Traffic Patterns FL | PTV xRoute ≥ 1.17 PTV xTour, xDima, xCluster ≥ 1.18.1 | PTV xMap ≥ 1.18.1 |
Truck Attributes FL | PTV xRoute, xTour, xDima, xCluster 1.20 | PTV xMap ≥ 1.20 |
Traffic Incidents FL | PTV xRoute, xTour, xDima, xCluster 1.20 | PTV xMap ≥ 1.20 |
PTV_PreferredRoutes
This FeatureLayer contains a prioritized road networks or rather routes for certain vehicle types like trucks with special loads or heavy vehicles.
Preferred routes are crucial in USA and Australia but become more and more relevant in Europe as well as e.g. the inner city of Munich has to be detoured if not delivering directly.
Use Cases: Hazardous goods transports, long trucks, heavy load transport, oversize cargo, etc.
PTV xServer: Visualization with PTV xMap Server, Routing with PTV xRoute Server, Trip planning with PTV xTour Server
PTV_RestrictionZones
This layer provides Restricted transit areas for example truck transit zones. This Feature Layer contains restricted transit areas what means areas, which have special restrictions. These restricted areas may be used by certain vehicle types, but only as start or destination otherwise they must not be passed through.
As part of the EU regulations on limits for air pollutants,
various regions and cities with high particulate air pollution installed so-called clean air and action plans,
which includes environmental zones or drive-through zones prohibiting the transit of specific types of vehicles for example trucks larger than 7.5 t.
FreeForDelivery zone |
Delivery vehicle |
Zone navigability |
---|---|---|
true |
true |
only in waypoints zones |
true |
false |
no |
false |
true |
no |
false |
false |
no |
Use Cases: Environmental Zones.
PTV xServer: Visualization with PTV xMap Server, Routing with PTV xRoute Server, Trip planning with PTV xTour Server
PTV_SpeedPatterns
This layer provides statistical and time-dependent absolute speeds for a given set of road segments,
that can be used by the routing engine instead of the NC/SC speed of the vehicle profile.
The freeFlowSpeed property is used to store the freeflow Speeds. Modeled Patterns Over Times (POTs) can be applied to the freeflow speeds,
via the Generator API, to provide time-dependent absolute speeds. There's no special XML configuration needed for this.
Optional: the Feature Descriptions can be restricted to a given transport system, using the transportSystem property
Optional: the Feature Descriptions can be restricted to a given validity period (e.g. during holidays), using the GDF TimeDomains
Transfer of past traffic patterns per road segment show the expected Level Of Service LOS in the future. This forecast helps to recognize and avoid traffic jams or at least include the anticipated time loss into the estimated time of arrival ETA.
As soon as real-time Dynamic Traffic Information is available as a FeatureLayer,
it can be combined with the historic Traffic Patterns.
The combination of forecasted and actual traffic information result in a more precise view of the near future
for example road works in combination with a traffic jam as the result of an accident.
Use Cases: Routing with historical traffic data.
PTV xServer: Visualization with PTV xMap Server, Routing with PTV xRoute Server, Trip planning with PTV xTour Server
Traffic Patterns and Speed Patterns are substitutable words for the same data content.
PTV_TruckSpeedPatterns
This layer is derived from the PTV_SpeedPatterns but it is used for trucks instead of cars. So additional data like height data, truck speed limits or passing restrictions are considered in the route calculation. The functionality is similar to the PTV_SpeedPatterns but these layers should not be used at the same time.
Use Cases: Routing with historical traffic data
PTV xServer: Visualization with PTV xMap Server, Routing with PTV xRoute Server, Trip planning with PTV xTour Server
PTV_TimeZones - time zone information
This layer provides time zone information at a given location. This information is necessary to consider time dependent restrictions correctly in the route planning. For example temporary road closures and road works. Different time zones can be considered in routing and estimated time of arrival ETA calculation. Time zones can be precisely displayed, especially in connection with historical traffic information and traffic patterns.
Use Cases: Output of the correct (local) ETA for transports crossing time zones.
PTV xServer: Routing with PTV xRoute Server
Dynamic FeatureLayer contains additional dynamic content which can be automatically downloaded by PTV Content Update Service (see Configuration of Dynamic FeatureLayer). To activate this service please contact your PTV sales representative.
Typical examples for dynamic FeatureLayer are:
PTV_TrafficState - real time or forecasted speeds on the network (currently only for internal use)
PTV_TrafficIncidents - real time or forecasted traffic events
This layer provides actual traffic information to consider incidents like traffic jams in the route planning. Up-to-date traffic information is provided as dynamic FeatureLayer and can be downloaded from the Layer Delivery Server with the PTV Content Update Service plugin. To activate this service please contact your PTV sales representative.
Use Cases: Calculation of a route depending real time traffic information
PTV xServer: Visualization with PTV xMap Server, Routing with PTV xRoute Server, Distance matrix calculation with PTV xTour, xDima and xCluster Server
Drive around a traffic jam with enabling FeatureLayer PTV_TrafficIncidents.
Each FeatureLayer theme must be licensed separately by the license key xroute.featureLayerThemes. For further information, please contact your PTV representative.
These are the benefits of FeatureLayer.
A PTV FeatureLayer Theme is the logical content within a FeatureLayer.
Each type of FeatureLayer is represented by its theme and can be identified by an id string. Data files belonging to a certain FeatureLayer theme have a file name that contains the id of the corresponding theme. The FeatureLayer data is a set of additional road network attributes, that takes effect under specific circumstances. These circumstances can be described with settings for countries, rules, actions, and properties. The user can modify the circumstances by enabling or disabling some countries, rules, actions, or properties.
The circumstances are defined by the theme rules, which evaluate one or several theme properties, taking into account the attributes of the selected vehicle profile. For example, a road a may be forbidden to vehicles exceeding the totalPermittedWeight
property value stored in the layer for this road. When all the conditions of a rule are fulfilled it triggers an action which can effect the routing (apply a bonus or malus to a road segment, change its speed, et cetera).
The GlobalSettings
element in the FeatureLayer profile defines the general behavior of FeatureLayer. For example, all time dependent data can be disabled using the enableTimeDependency
attribute, and generic parameters (described by name and value) can be defined for advanced configuration of the FeatureLayer data.
The theme specific configuration is located below the element Themes
in the FeatureLayer profile. Each theme is characterized by its id
. There is a prioritization for the themes which can be set with the priorityLevel
attribute. Layers with a higher priority level will be considered first in case of conflicting information between different FeatureLayer. The elements have the following hierarchical structure in the profile:
Theme -> Country -> Rule <-> Action <-> Property
Enabling a Theme
automatically enables all countries, properties, rules, and actions for this theme, unless they are explicitly disabled in the profile.
Enabling a Country
automatically enables all properties, rules, and actions for this country, unless they are explicitly disabled in the profile.
If a Theme
is disabled, all countries, properties, rules and actions will be ignored for this theme.
If a Country
is disabled, all properties, rules, and actions will be ignored for this country.
If a Property
is disabled, all rules evaluating this property are ignored and will not trigger any action.
If a Rule
is disabled, this rule will not trigger any action.
If an Action
is disabled, all rules triggering this action are ignored.
A list of available properties and rules for each FeatureLayer theme can be found in the FeatureLayer Content Documentation.
Each FeatureLayer theme is characterized by its id. If a theme is enabled, all of its sub-elements are implicitly enabled (see theoretical concept for more details).
A theme consists of the following elements:
Elements and attributes of a theme:
priorityLevel
attributeA prioritization for the themes can be handled by setting the priorityLevel
. Legal values for the priority level are positive integer values. A higher value indicates a higher priority. The default priority level is 100.
Country
elementThe Country element defines specific settings for a country of this theme. The id
can have the following values:
An asterisk symbol (*) representing all countries
A PTV-specific integer value representing a given unit code of a country. Legal values are listed in the table of Integration Unit Codes. For further information also see the type CountryCode in the XSD documentation.
The following example enables PTV_SpeedPatterns only for Germany (country unit code 49)
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Profile>
<FeatureLayer majorVersion="1" minorVersion="0">
<GlobalSettings enableTimeDependency="true"/>
<Themes>
<Theme id="PTV_SpeedPatterns" enabled="true">
<Country id="*" enabled="false"/>
<Country id="49" enabled="true"/>
</Theme>
</Themes>
</FeatureLayer>
<Routing majorVersion="2" minorVersion="0">
<Course>
<AdditionalDataRules enabled="true"/>
</Course>
</Routing>
</Profile>
For each country, the following elements can be filtered: properties, rules, and actions. Disabling these elements should be done carefully because they effect the routing results.
The available properties, rules, and action types depend on the layers that have been added to the map.
Property
element:
Available properties for each theme are listed in the FeatureLayer Content Documentation. Each FeatureLayer property can be enabled or disabled independently per country. When a property is disabled, rules evaluating this property are ignored.
The following example disables the freeFlowSpeed
property only for Luxembourg (country unit code 52), and for the theme PTV_SpeedPatterns. As a result, this property will not effect the routing in this country and for this theme anymore.
<FeatureLayer majorVersion="1" minorVersion="0">
<GlobalSettings enableTimeDependency="true"/>
<Themes>
<Theme id="PTV_SpeedPatterns" enabled="true">
<Country id="52" enabled="true">
<Property id="freeFlowSpeed" enabled="false"/>
</Country>
</Theme>
</Themes>
</FeatureLayer>
Rule
element:
Available rules for each theme are listed in the FeatureLayer Content Documentation. Each rule can be enabled or disabled independently per country. When a rule is disabled, it does not trigger any action anymore.
Rules can be identified by their unique ruleId. RuleIds for all rules included in one of PTV's Feature Layer themes follow a special naming convention described below:
ruleId = "ptvTT_AA_N"
Where :
The following example disables all rules for the theme PTV_PreferredRoutes. As a result, this theme will not influence the routing anymore.
<FeatureLayer majorVersion="1" minorVersion="0">
<GlobalSettings enableTimeDependency="true"/>
<Themes>
<Theme id="PTV_PreferredRoutes" enabled="true">
<Country id="*" enabled="true">
<Rule id="*" enabled="false"/>
</Country>
</Theme>
</Themes>
</FeatureLayer>
Action
element:
Available actionTypes are listed under the Rules section of each theme in the FeatureLayer Content Documentation. Each action type can be enabled or disabled independently per country. When an action type is disabled, all rules triggering an action of this type are ignored.
The following table describes all actions currently used in any FeatureLayer themes and supported by PTV routing and rendering engine
ActionId | Action Acronym | Description |
---|---|---|
BONUS_MALUS | BM | Applies a bonus (<0), a malus (>0) or blocks a road (2501) |
SET_ABSOLUTE_SPEED | AS | Sets the road's average speed at a given time, according to the current vehicle profile. |
SET_FREEFLOW_SPEED | FS | Sets the road's free-flow speed. |
SET_TIME_ZONE | v | Sets the time zone information for the evaluated location. |
SET_DISPLAY_CLASS | DC | Sets information on how the segments should be rendered. |
The following example disables the BONUS_MALUS action type for the theme PTV_RestrictionZones only for France (country unit code 33). As a result, this action will not influence the routing in this country and for this theme anymore.
<FeatureLayer majorVersion="1" minorVersion="0">
<Themes>
<Theme id="PTV_RestrictionZones" enabled="true">
<Country id="33" enabled="true">
<Action id="BONUS_MALUS" enabled="false"/>
</Country>
</Theme>
</Themes>
</FeatureLayer>
PropertyValue
element
The PropertyValue
element allows to define extra profile attributes, which are relevant for the rule evaluations of the theme properties.
Most of the FeatureLayer properties are already connected by internal configuration to the vehicle attributes of the profile, like totalPermittedWeight
, hazardousGoods
, delivery
, et cetera.
The PropertyValue
element should only be used if new theme properties have been shipped with the map data that cannot be connected to the vehicle attributes of the profiles.
The following example illustrates how a list of preferred route network types (1 and 7) can be favored with the PTV_PreferredRoutes theme.
<FeatureLayer majorVersion="1" minorVersion="0">
<Themes>
<Theme id="PTV_PreferredRoutes" enabled="true">
<PropertyValue id="preferredRouteType" value="1"/>
<PropertyValue id="preferredRouteType" value="7"/>
</Theme>
</Themes>
</FeatureLayer>
To enable or disable FeatureLayer functionality in general, set the attribute enableRoadEditor in the PTV xRoute configuration file conf/xroute.properties to true or false, respectively. In order to use FeatureLayer data, additional data rules have to be enabled in the profile:
<Routing majorVersion="2" minorVersion="0"> <Course> <AdditionalDataRules enabled="true"/> </Course> </Routing>
None of the FeatureLayer themes are activated by default. Each theme has to be activated separately by adding it to the global list of themes in the profile and by explicitly enabling its functionality.
<FeatureLayer majorVersion="1" minorVersion="0"> <Themes> <Theme id="PTV_PreferredRoutes" enabled="true"/> </Themes> </FeatureLayer>
This example illustrates a basic usage of the FeatureLayer PTV_SpeedPatterns. The XML snippet below is valid and can be passed
to the PTV xRoute Server using the CallerContext
property ProfileXMLSnippet
.
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <Profile> <FeatureLayer majorVersion="1" minorVersion="0"> <GlobalSettings enableTimeDependency="true"/> <Themes> <Theme id="PTV_SpeedPatterns" enabled="true"/> </Themes> </FeatureLayer> <Routing majorVersion="2" minorVersion="0"> <Course> <AdditionalDataRules enabled="true"/> </Course> </Routing> </Profile>
The PTV Content Update Service provides polling and downloading of dynamic FeatureLayer and toll updates. The data will be downloaded from a Layer Delivery Server. For the configuration and use of static FeatureLayer, see general FeatureLayer information.
The PTV Content Update Service can be configured with the file
$XSERVER/conf/content-update.properties
.
First the content update functionality has to be enabled globally with:
enabled = true
Then polling and downloading of dynamic FeatureLayer data has to be enabled separately:
featureLayer.enabled = true
Configure the Layer Delivery Server:
One or more Layer Delivery Server connections can be configured. Repeat the following structure (tags in <> have to be replaced with concrete values):
Mandatory property - url to Layer Delivery Server (lds):
lds.<ldsname>.serverUrl = <name of lds configuration to use>
lds.<ldsname>.basicauth.user = <user>
encrypted basic authentication password for Layer Delivery Server (default value is provided internally):lds.<ldsname>.basicauth.encryptedPassword = <encrypted-password>
if proxy configuration should be ignored for this configuration (default = false):lds.<ldsname>.ignoreProxy= true | false
Example of two Layer Delivery Servers named myLds1 and myLds2:
## example myLds1
lds.myLds1.serverAddress=http://my-lds-server/lds/rest
## example myLds2
lds.myLds2.serverAddress=http://another-lds-server/lds/rest
lds.myLds2.basicauth.user=ldsclient
lds.myLds2.basicauth.encryptedPassword=secret
FeatureLayer update configuration:
The path to folders with dynamic FeatureLayer data can be configured by setting the property featureLayer.dynamicRootFolder
.
Please avoid any changes in this directory! It can cause data inconsistencies, which will prevent the PTV Content Update Service from working. Please contact your PTV representative for further help.
Specify URLs for all PTV xServer that should be notified if the dynamic FeatureLayer data is updated:
At least one URL has to be specified. Repeat the following structure (tags in <> have to be replaced with concrete values)
notifyServers.<name1>.rootUrl=<url1>
notifyServers.<name2>.rootUrl=<url2>
Example for a PTV xRoute Server on localhost with port 50030:
notifyServers.xroute.rootUrl=http://localhost:50030/xroute
Specify filters to use for FeatureLayer data polling:
Repeat the following structure (tags in <> have to be replaced with concrete values)
Mandatory property - reference to Layer Delivery Server configuration (<ldsname>)
featureLayer.filters.<filtername>.lds = <ldsname>
Comma separated list of FeatureLayer IDs that should be considered for updates.
featureLayer.filters.<filtername>.layerIds = <id1>,<id2>,...
Comma separated list of integration units that should be considered for updates.
featureLayer.filters.<filtername>.integrationUnits = <iu1>,<iu2>,...
Comma separated list of vendor IDs that should be considered for updates.
featureLayer.filters.<filtername>.vendors = <vendor1>,<vendor2>,...
Comma separated list of themes that should be considered for updates.
featureLayer.filters.<filtername>.themes = <theme1>,<theme2>,...
Comma separated list of profile IDs that should be considered for updates.
featureLayer.filters.<filtername>.profiles = <profile1>,<profile2>,...
Consider only FeatureLayer for updates that were created for this map.
featureLayer.filters.<filtername>.mapName = <mapName>
Consider only FeatureLayer for updates that were created for this map version.
featureLayer.filters.<filtername>.mapVersion = <mapVersion>
Set the polling interval. If not specified, the polling interval provided by the Layer Delivery Server (meta data value nextUpdateSuggested
) will be used.
featureLayer.filters.<filtername>.pollingInterval = <number> <timeunit>
Example for a filter of Layer Delivery Server myLds1 configured according to the preceding description.
This filter will download all FeatureLayer for the map PTV_Europe_City_Map_Premium_2013_1N with a polling interval of 10 seconds:
featureLayer.filters.filterOfmyLds1.lds=myLds1
featureLayer.filters.filterOfmyLds1.pollingInterval=10 seconds featureLayer.filters.filterOfmyLds1.mapName=PTV_Europe_City_Map_Premium_2013_1N
Some FeatureLayer themes contain time dependent data, for example PTV_SpeedPatterns.
The use of time dependent data can be enabled by setting the attribute enableTimeDependency
of
the element GlobalSettings
to true.
Any time information from the data refers to the local time of the segment. That means, time zone information has to be considered for route calculation. Therefore the FeatureLayer PTV_TimeZones is required for the use of time dependent FeatureLayer themes and should be provided with the map data. The time zone information will be used implicitly, that means it does not require any additional license key or configuration. If a required PTV_TimeZones layer is missing, the route calculation will result in an error.
Due to the fact that the information is used implicitly, no time zone information will be displayed as
FeatureDescription
in the route list (also see paragraph Feature descriptions in the route list).
In order to show time zone information in the route list, the theme PTV_TimeZones has to be enabled explicitly.
In order to obtain information about the FeatureLayer data within the route list segments, use one of the routing methods with the following adaptions:
featureDescriptions
in ResultListOptions
to true.
Set the CallerContext
property ProfileXMLSnippet
to
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Profile xmlns:ns2="http://www.ptv.de/com/ptvag/xserver/engines/xpoidbaccess">
<FeatureLayer majorVersion="1" minorVersion="0">
<GlobalSettings enableTimeDependency="true"/>
<Themes>
<Theme id="PTV_SpeedPatterns" enabled="true"/>
</Themes>
</FeatureLayer>
<Routing majorVersion="2" minorVersion="0">
<Course>
<AdditionalDataRules enabled="true"/>
<DynamicRouting limitDynamicSpeedToStaticSpeed="false"/>
</Course>
</Routing>
</Profile>
Part | Description | Example |
---|---|---|
ThemeID | ID of the FeatureLayer theme. | PTV_SpeedPatterns |
Description | Available data for the current segment. | freeFlowSpeed=40 |
TimeDomain (optional) | Information about the validity period of the data. | Time domain documentation* |
* Note: the "fuzzy symbols" (e.g. z1) are not supported yet.
For evaluation purposes, it is possible to show information about FeatureLayer segment data along a route without considering it. This can be achieved by configuring a FeatureLayer theme but disabling all its actions, rules, or countries. Additionally, featureDescriptions
have to be requested in the ResultListOptions
element of the routing request.
The following snippet shows an example of how to display information about preferred routes in the route list without considering them:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Profile xmlns:ns2="http://www.ptv.de/com/ptvag/xserver/engines/xpoidbaccess">
<FeatureLayer majorVersion="1" minorVersion="0">
<Themes>
<Theme id="PTV_PreferredRoutes" enabled="true">
<Country id="*" enabled="false"/>
</Theme>
</Themes>
</FeatureLayer>
<Routing majorVersion="2" minorVersion="0">
<Course>
<AdditionalDataRules enabled="true"/>
</Course>
</Routing>
</Profile>
The consideration of FeatureLayer data for a route calculation can be achieved by referencing a specific XML profile or by adding an XML snippet to the request. This use case shows the XML snippet using the FeatureLayer theme PTV_PreferredRoutes. The PTV xRoute Server truckfast
XML profile is set in the CallerContext
property Profile
and is therefore used as basic profile for the request. As described in the documentation of the XML profile mechanism an XML snippet solely considers the profile as parent that is set in the CallerContext
.
This use case enables the FeatureLayer theme PTV_PreferredRoutes and configures a preferred route type:
Enable the FeatureLayer by setting the attribute enabled
of AdditionalDataRules
to true.
Enable the usage of preferred routes by setting in the Theme
element the attribute id
to PTV_PreferredRoutes, and the attribute enabled
to true.
Define which preferred route types should be used by adding preferredRouteType
with the desired value (1 in this case) to the property value list of the dedicated Theme
. If there are already elements in the list, the property will be added according to the description of handling lists.
Add a CallerContext property with key "ProfileXMLSnippet" to your routing request and use this XML profile snippet as value:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<Profile xmlns:ns2="http://www.ptv.de/com/ptvag/xserver/engines/xpoidbaccess" >
<FeatureLayer majorVersion="1" minorVersion="0">
<Themes>
<Theme id="PTV_PreferredRoutes" enabled="true">
<PropertyValue id="preferredRouteType" value="1"/>
</Theme>
</Themes>
</FeatureLayer>
<Routing majorVersion="2" minorVersion="0">
<Course>
<AdditionalDataRules enabled="true"/>
</Course>
</Routing>
</Profile>
Profile
to truckfast.To use the parent mechanism of XML Profiles explained in the Unified Profile Mechanism, the XML profile snippet mentioned above can be saved as child of the truckfast
profile. To make sure that the PTV xRoute Server considers the profile correctly, it has to be saved in the profile folder (conf/profiles
), for example under the name truckfast-preferredroutes.xml
. To use the truckfast
profile as parent profile, the attribute parent in the Profile
element has to be set to truckfast
. Now truckfast-preferredroutes
can be used by setting it in the CallerContext property Profile
.
Copyright © 2024 PTV Logistics GmbH All rights reserved. | Imprint