The Unified Profile Mechanism ("UPM") was implemented in order to establish a transparent configuration procedure for each PTV xServer. We strived for the better handling and setting of the huge amount of attributes and additionally aimed for a harmonised profile mechanism obligatory for all PTV xServer.
Since the release of 1.17, the PTV xServer is able to use profiles saved in the XML format instead of the old properties format. The profiles are either placed in the file system identified by their specific names or handed over as code snippets, the so-called "snippet mechanism", using the caller context element in your request.
By inheritance, existing default profiles can be easily updated with new child profiles. The child profiles contain only the referencing to the default (parent) profile and the changes that should be applied to it. This new mechanism also ensures a simpler transfer of profiles between versions. Only the child profiles may need to be adjusted. In addition, the complete engine parameters can be transferred from the client side using the above mentioned snippet mechanism. These profile snippets ensure the flexible representation of individual requirements in the customer application.
Modern Parameter Management: The use of UPM contains a bundle of advantages concerning the client- and server-side applications.
Inheritance: The customer profiles can be derived from the parent (default) profiles. Only the relevant parameters have to be set in the child which should be modified. Therefore, a simple inheritance might be designed which can easily be updated with upcoming PTV xServer versions. It is possible to add new profiles without starting the PTV xServer.
Version 1.18.1 and higher: Vehicle profiles are available according to the XSD of PTV xRoute but only usable as server profiles.
Caution:
The XML profile can neither be referenced in the caller context element nor be handed over by request. Instead, it has to be added in the profile file xcluster-<profile>.properties
.
Version 1.18.1 and higher: Vehicle profiles are available according to the XSD of PTV xRoute but only usable as server profiles.
Caution:
The XML profile can neither be referenced in the caller context element nor be handed over by request. Instead, it has to be added in the profile file xdima-<profile>.properties
.
Version 1.18.1 and higher: XML profiles are available for the rendering of Feature Layers.
Caution: The general map style is still defined by the respective render.ini
file. Property-style profile file and XML profile file must have the same name by which they are referenced in the caller context; for example xmap-test.properties
and test.xml
.
Version 1.18.1 and higher: XML profiles are available.
Version 1.17 and higher: Property-style profiles are completely converted into XML profiles.
Version 1.20 and higher: XML profiles are available. Vehicle profiles are available according to the XSD of PTV xRoute.
Version 1.18.1 and higher: Vehicle profiles are available according to the XSD of PTV xRoute.
Caution:
The XML profile referenced in the caller context element is used for all distance matrices configured in the DistanceMatrixCalculation
element unless a profileName
is specified for a particular distance matrix.
If an XML profile is handed over by request, it is applied to the respective server profile of each distance matrix.
The UPM is already scheduled for further PTV xServer. We will keep you informed about the progress.
Today's configuration options are divided in following primary parts:
Element | Description |
---|---|
Syntax |
The XML document of each profile contains the declaration in the
first line. Three attributes are mandatory: Version, encoding and
standalone. The construct is defined as follows:
|
Profile |
The root element
The element
|
Children | Following elements are derived from <Profile>: GeoDatasource, BreakAndRestRules, Common, Routing, FeatureLayer and Mapmatching. |
Each PTV xServer supporting this mechanism defines an XML schema for the profile. The schema and its documentation can be accessed through the PTV xServer Management Console. For PTV xServer-specific information on XML profiles, please visit the use-case documentation.
The file system profile is used as before passing its name in the
caller context element of the defined request. Its naming convention
is
<profile>.xml
(always lower-case).
<CallerContext_6> <wrappedProperties xmlns="http://baseservices.service.jabba.ptvag.com"> <CallerContextProperty key="Profile" value="truckfast" /> </wrappedProperties> </CallerContext_6>
A profile snippet can also be passed in the caller context element. The next snippet
<Profile> <Common language="de" coordinateFormat="PTV_GEODECIMAL" majorVersion="1" minorVersion="0"/> </Profile>
will be passed as follows:
<CallerContext_6> <wrappedProperties xmlns="http://baseservices.service.jabba.ptvag.com"> <CallerContextProperty key="ProfileXMLSnippet" value="<Profile><Common language="de" coordinateFormat="PTV_GEODECIMAL" majorVersion="1" minorVersion="0" /></Profile>" /> </wrappedProperties> </CallerContext_6>
The XML string has to be supplied in one line filling the corresponding attribute "value". But in general this will automatically done by the clients.
To optimise for performance, keep the profile snippets as small as possible containing only those parameters which are different from the profile in the file system.
An XML profile can also be validated automatically by referencing the schema URL in the XML document. Due to the impact on performance this feature should be used only for development and debugging purposes.
<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation= "../../schema/XRouteProfile.xsd"> <Common language="de" coordinateFormat="PTV_GEODECIMAL" majorVersion="1" minorVersion="0"/> </Profile>
If the profile contains a fault configuration, the response will contain a corresponding error message locating the erroneous parts.
XML profiles in the file system can specify a parent using the parent attribute. This allows users to specify only the differences to the referred profile.
<Profile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" parent="truckfast"> </Profile>
Please notice that each profile can only have one parent. A parent profile can have another parent. Duplicated files are not permitted in the profile chain .
Profiles located in the file system are cached as a parent/child combination. Loading the same parent profile with another child is considered as a new profile chain. When changing a profile file the cache will automatically be updated, a restart is not necessary.
The effective profile is the "de facto"" profile that is applied. It is created using settings from all applicable profiles in the following order, where each step overwrites values of the previous one:
All attributes defined either by the parent or child are written to the effective profile. If child and parent profile contain the same attribute for an element, the value from the child profile is used, as in the following example:
Parent Profile | Child Profile | Effective Profile |
---|---|---|
<Element attribute1="value1" attribute3="value3"/> |
<Element
attribute2="value2" attribute3="newValue3"/>
|
<Element
attribute1="value1" attribute2="value2"
attribute3="newValue3"/>
|
If a child profile defines additional elements, these elements are merged into the parent element:
Parent Profile | Child Profile | Effective Profile |
---|---|---|
<Element>
|
<Element>
|
<Element>
|
If a child profile defines additional elements in a list, these elements will be appended to the list of the parent profile:
Parent Profile | Child Profile | Effective Profile |
---|---|---|
<Element>
|
<Element>
|
<Element>
|
If a child profile defines additional elements in a list where each list element has an attribute named key, elements will overwrite elements with the same key:
Parent Profile | Child Profile | Effective Profile |
---|---|---|
<Element>
|
<Element>
|
<Element>
|
If a child profile defines a subelement having an attribute named reset which is explicitely set to true, the subelement to be resetted will be completely (recursively) redefined by the corresponding subelement in the child profile:
Parent Profile | Child Profile | Effective Profile |
---|---|---|
<Element>
|
<Element>
|
<Element>
|
If a child profile defines additional elements in a list where a list element has an attribute named key and another attribute named reset explicitely set to true, the element to be resetted will be completely (recursively) redefined by the child element:
Parent Profile | Child Profile | Effective Profile |
---|---|---|
<Element>
|
<Element>
|
<Element>
|
logger.ptvag.level=DEBUG
in
server-logging.properties
and
module-logging.properties
.
Furthermore, set
log.effectiveProfile=true
in
<module>.properties
.
Each PTV xServer has its own schema deployed in its webapp folder.
For the PTV xRoute server it is named XRouteProfile.xsd and is located in
<root path>\webapps\xroute\schema
containing the following overall elements:
calculateTour()
not for the enhanced method calculateAdvancedTour()
.The routing element is one of the primary overall elements. It defines the most important routing parameters. The next table indicates the meaning of each element.
Element | Description |
---|---|
Waypoint |
This element stipulates the behaviour of a waypoint regarding the
specified attributes: Select type of the link (type of
enumeration), set maximum distance in [m] to the segment and to
the combined transport. The behaviour of the
Default instance: <Waypoint linkType="ROAD" maximumDistanceToCombinedTransport="100" maximumDistanceToSegment="5000"> <LinkTypeConfiguration>{0,1}</LinkTypeConfiguration> </Waypoint> |
Algorithm | Do not
edit these parameters without consulting our experts! This has a
heavy impact on the routing modifying the values. Following
attributes are editable: the routing algorithm and the
aggressiveness of A*. Two child elements are provided: LevellingScopeByNetworkClass
and GeographicRestrictions . |
Course |
Defines the parameters of the routing algorithm that control the course of the route. Following attributes belong to the element: The weight factor as a relation of travel time and distance and enforce the shortest route. PTV's recommended default value for distanceTimeWeighting is 80 (optimise fast route). A bundle of child elements completes the parent: basic and additional data rules, dynamic routing, maneuvre and violations. Default instance: <Course distanceTimeWeighting="80" enforceShortestRoute="false"> <BasicDataRules>{0,1}</BasicDataRules> <AdditionalDataRules enabled="false" layerName="">{0,1}</AdditionalDataRules> <DynamicRouting dynamicTimeOnStaticRoute="false" layerName="" limitDynamicSpeedToStaticSpeed="true" useFreeFlowSpeed="false" useLegacyDynamic="false">{0,1}</DynamicRouting> <Maneuver considerTurningBans="true" uTurnCost="5000">{0,1}</Maneuver> <Violations>{0,1}</Violations> </Course> |
Vehicle |
Defines the vehicle to be used. Give as many details on the
vehicle as possible in order to obtain the best result. Please
note that all values apply to the complete vehicle including
trailer. Note that the results may be incorrect because the legal
definition of a vehicle type may differ from country to country
and it may also differ from the technical definition. As an
example, a truck with a weight of 7.5 tons is a truck by legal
definition in Germany but is not a truck by definition of toll.
Most parameters are used for several use cases. They are denoted
with (1) for routing, (2) for toll, (3) for emission calculation,
and (4) for RoadEditor. The default is a VW Golf VI. Four elements
are defined:
Default instance: <Vehicle> <Physical>{0,1}</Physical> <Legal yearOfManufacture="2005">{0,1}</Legal> <Load hazardousGoodsType="NONE" loadType="PASSENGER" tunnelRestrictionCode="NONE">{0,1}</Load> <Speed speedForAirLineDistance="36">{0,1}</Speed> </Vehicle> |
Matrix |
Defines the parameters used especially for 1:n routings. The parent contains following attributes: Only toll roads, distance and time limits. By default all network classes will be summed up for the result list (see attached child element). Please note this parameters should only be modified after consulting our experts. Default instance: <Matrix distanceLimit="4294967295" onlyTollRoads="false" timeLimit="4294967295"> <SumUpNetworkClass sumUp="">{8,8}</SumUpNetworkClass> </Matrix> |
Isochrone |
Defines the parameters used especially for the calculation of isochrones, i.e. lists of segments that can be reached from a station within a given time interval or distance range. A certain number of attributes are provided to be modified as follows: tile or node based calculation mode for the isochrones (PTV recommends to use the default setting: tile_based) and enabling the levelling. Furthermore, two elements are available: specific attribute settings for the tile or node based polygon. Default instance: <Isochrone polygonCalculationMode="TILE_BASED" useLevelling="false"> <TileBasedPolygon smoothingLength="1.0">{0,1}</TileBasedPolygon> <NodeBasedPolygon filterMode="NONE" firstSmoothingAngle="5" maximumAngleWithoutPolypoint="20" secondSmoothingAngle="15">{0,1}</NodeBasedPolygon> </Isochrone> |
RouteList |
Defines the parameters controlling the content of the route list, which consists of several sub-elements such as maneuvers and maneuver groups. These specific attributes will be listed only if the result list maneuvers or maneuverGroups are enabled. Following output is configurable (child elements) of maneuver: bridge, tunnel, urban, start and destination. The detail level can also be modified from standard to diverse settings such as borders, intersection etc. Default instance: <RouteList> <Maneuvers detailLevel="STANDARD" maneuversAtStartAndDestination="false">{0,1}</Maneuvers> <ManeuverGroups maximumDistanceBetweenManeuvers="300" maximumNumberOfManeuvers="4294967295">{0,1} </ManeuverGroups> </RouteList> |
AdditionalRules |
Defines additional rules for the route calculation which do not influence routing directly but affect the results, anyway. The maximum air-line distance between start and destination and further specific roules for the child ExceptionPaths in order to manipulate the route calculation (determine alternative routes via bonus-malus factor). Default instance: AdditionalRules maximumAirLineDistance="0"> <ExceptionPaths>{0,1}</ExceptionPaths> </AdditionalRules> |
One of the important classes is "Course" which is affected by user-specific profile modifications.
Course elements | Description |
---|---|
BasicDataRules | Defines basic
parameters that affects the routing such as
|
AdditionalDataRules |
Defines the parameters for additional segment properties that are stored in additional data files (e.g. truck attributes) or a database created by the so-called RoadEditor. The consideration of these segment properties can be switched on and off here. Please note that these parameters do not define the segment properties themselves but instead their consideration during route calculation. You should also note that all subordinate parameters are valid only if the 'enabled' attribute is true. In contrast to the basic data rules these elements have an external context defined by additional data settings containing segment and vehicle specific parameters and legacy. This depends on properties such as blockings for high or heavy vehicles. Exemplarily, use external data for the so-called "segment specific properties" such as
The Legacy elements completes the list which defines the behaviour for segment attributes in general. |
DynamicRouting | Defines the attributes and children for dynamic routing. Dynamic routing must be enabled considering travel information along the given route. Static and dynamic time information will be listed according to the user specific settings. Add the layer name for dynamic routing. |
Maneuver | Defines the parameter that control the specific maneuver such as U-turns and takes the turning bans into account. |
Violations | Defines the parameter that control whether the route restrictions could be broken (violated) during the route calculation. These parameter are important in order to find a route between two points, even if the resulting route is invalid for a given vehicle, e.g if the vehicle weight exceeds an maximum allowed weight of a route segment. |
Attributes | Corresponding values such as weight factors for distance and time which directly affects the routing (fastest versus shortest route). |
The class "Vehicle" is also relevant to apply customised profile requirements.
Vehicle elements |
Vehicle elements Description |
---|---|
Physical | Defines a set of necessary physical parameters of the vehicle: type of the vehicle (motorised, pedestrian etc.), technical parameters for emissions (integrated emission technology, particle filter, low emission zone etc.) and engine specific attributes such as cylinder capacity, fuel type, ratio of biofuel to conventional fuel and fuel consumption. Furthermore, the dimension and weight of a vehicle are specified. Also the parameter of a trailer respectively the maximum permitted number of passengers could be added for user specific settings. Last but not least, the number of axles and the corresponding load are provided for modifications. |
Legal | Defines the legal conditions and the year of manufacture. Following values can be enabled: public maintenance (e.g. garbage trucks), authorised vehicles, vehicles for emergency or delivery. Project vehicles are also adjustable. |
Load | In contrast to the maximum permitted load the value of the current load will be entered for the given vehicle. Detailed information about the load are provided such as type of load or hazardous and specified restriction codes when entering a tunnel with dangerous or explosive goods etc. |
Speed | The element speed consists of the average speed for air-line distance (36 km/h) and the speed ranges [max,min] derived from the 8 speed (fast → slow) and network (motorway → walkway) classes. Those values directly affects the time period of the routings and might be relevant for user-specific vehicle profiles. |
Attributes | No further attributes are defined by now. But possible for future enhancements. |
xLocate | xRoute | xMap | xMapmatch | xDima | xCluster | xTour | xTerritory | xLoad | |
---|---|---|---|---|---|---|---|---|---|
FeatureLayer | x | x | x | x | x | x | |||
Routing | x | x | x | x | x | ||||
Rendering | x | ||||||||
Mapmatching | x | ||||||||
TerritoryPlanning | x | ||||||||
BreakAndRestRules | x | ||||||||
GeoDatasource | x | x | x |
Copyright © 2024 PTV Logistics GmbH All rights reserved. | Imprint