Update documentation
This commit is contained in:
parent
d22b37961f
commit
b6db39e69c
@ -104,6 +104,7 @@ max_speed_for_map_matching | Float | Maximum vehicle speed to be as
|
|||||||
max_turn_weight | Float | Maximum turn penalty weight
|
max_turn_weight | Float | Maximum turn penalty weight
|
||||||
force_split_edges | Boolean | True value forces a split of forward and backward edges of extracted ways and guarantees that `process_segment` will be called for all segments (default `false`)
|
force_split_edges | Boolean | True value forces a split of forward and backward edges of extracted ways and guarantees that `process_segment` will be called for all segments (default `false`)
|
||||||
|
|
||||||
|
|
||||||
The following additional global properties can be set in the hash you return in the `setup` function:
|
The following additional global properties can be set in the hash you return in the `setup` function:
|
||||||
|
|
||||||
Attribute | Type | Notes
|
Attribute | Type | Notes
|
||||||
@ -113,6 +114,7 @@ excludable | Sequence of Sets | Determines which class
|
|||||||
classes | Sequence | Determines the allowed classes that can be referenced using `{forward,backward}_classes` on the way in the `process_way` function.
|
classes | Sequence | Determines the allowed classes that can be referenced using `{forward,backward}_classes` on the way in the `process_way` function.
|
||||||
restrictions | Sequence | Determines which turn restrictions will be used for this profile.
|
restrictions | Sequence | Determines which turn restrictions will be used for this profile.
|
||||||
suffix_list | Set | List of name suffixes needed for determining if "Highway 101 NW" the same road as "Highway 101 ES".
|
suffix_list | Set | List of name suffixes needed for determining if "Highway 101 NW" the same road as "Highway 101 ES".
|
||||||
|
relation_types | Sequence | Determines wich relations should be cached for processing in this profile. It contains relations types
|
||||||
|
|
||||||
### process_node(profile, node, result, relations)
|
### process_node(profile, node, result, relations)
|
||||||
Process an OSM node to determine whether this node is a barrier or can be passed and whether passing it incurs a delay.
|
Process an OSM node to determine whether this node is a barrier or can be passed and whether passing it incurs a delay.
|
||||||
@ -122,7 +124,7 @@ Argument | Description
|
|||||||
profile | The configuration table you returned in `setup`.
|
profile | The configuration table you returned in `setup`.
|
||||||
node | The input node to process (read-only).
|
node | The input node to process (read-only).
|
||||||
result | The output that you will modify.
|
result | The output that you will modify.
|
||||||
relations| The list of relation attributes passed from `process_relation` function for this node.
|
relations| Storage of relations to access relations, where `node` is a member.
|
||||||
|
|
||||||
The following attributes can be set on `result`:
|
The following attributes can be set on `result`:
|
||||||
|
|
||||||
@ -139,7 +141,7 @@ Argument | Description
|
|||||||
profile | The configuration table you returned in `setup`.
|
profile | The configuration table you returned in `setup`.
|
||||||
node | The input way to process (read-only).
|
node | The input way to process (read-only).
|
||||||
result | The output that you will modify.
|
result | The output that you will modify.
|
||||||
relations| The list of relation attributes passed from `process_relation` function for this way.
|
relations| Storage of relations to access relations, where `way` is a member.
|
||||||
|
|
||||||
Importantly it will set `result.forward_mode` and `result.backward_mode` to indicate the travel mode in each direction, as well as set `result.forward_speed` and `result.backward_speed` to integer values representing the speed for traversing the way.
|
Importantly it will set `result.forward_mode` and `result.backward_mode` to indicate the travel mode in each direction, as well as set `result.forward_speed` and `result.backward_speed` to integer values representing the speed for traversing the way.
|
||||||
|
|
||||||
@ -179,56 +181,6 @@ road_classification.road_priority_class | Enum | Guidance: order in priority
|
|||||||
road_classification.may_be_ignored | Boolean | Guidance: way is non-highway
|
road_classification.may_be_ignored | Boolean | Guidance: way is non-highway
|
||||||
road_classification.num_lanes | Unsigned | Guidance: total number of lanes in way
|
road_classification.num_lanes | Unsigned | Guidance: total number of lanes in way
|
||||||
|
|
||||||
### process_relation(profile, relation, result)
|
|
||||||
|
|
||||||
Supported since API **version 3**.
|
|
||||||
|
|
||||||
Given an OpenStreetMap relation, the `process_relation` function should setup values into result structure.
|
|
||||||
|
|
||||||
Argument | Description
|
|
||||||
---------|-------------------------------------------------------
|
|
||||||
profile | The configuration table you returned in `setup`.
|
|
||||||
node | The input relation to process (read-only).
|
|
||||||
result | The output that you will modify.
|
|
||||||
|
|
||||||
Relation process work flow consist of next steps:
|
|
||||||
1. Calls `process_relation` function for each relation. It should fill a `result` structure
|
|
||||||
2. After that each data will be passed for each member of processed relation into `process_node` and `process_way` functions
|
|
||||||
|
|
||||||
The following attributes can be set on that result in `process_relation`:
|
|
||||||
|
|
||||||
Attribute | Type | Notes
|
|
||||||
----------------------------------------|----------|--------------------------------------------------------------------------
|
|
||||||
is_restriction | Boolean | Flag to determine if relation is a turn restriction
|
|
||||||
|
|
||||||
Example processing code:
|
|
||||||
```lua
|
|
||||||
|
|
||||||
function process_way(profile, way, result, relations)
|
|
||||||
for _, r in ipairs(relations) do
|
|
||||||
for k, v in pairs(r) do
|
|
||||||
print('data_' .. k .. '_value_' .. v)
|
|
||||||
end
|
|
||||||
end
|
|
||||||
print ('process_way ' .. way:id() .. ' ' .. result.name)
|
|
||||||
end
|
|
||||||
|
|
||||||
function process_relation(profile, relation, result)
|
|
||||||
local t = relation:get_value_by_key("type")
|
|
||||||
if t == "route" then
|
|
||||||
for _, m in ipairs(relation:members()) do
|
|
||||||
if m:role == "north" then
|
|
||||||
result[m]['direction'] = 'north'
|
|
||||||
print('direction_north')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
print('route_relation')
|
|
||||||
end
|
|
||||||
end
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
### process_segment(profile, segment)
|
### process_segment(profile, segment)
|
||||||
The `process_segment` function is called for every segment of OSM ways. A segment is a straight line between two OSM nodes.
|
The `process_segment` function is called for every segment of OSM ways. A segment is a straight line between two OSM nodes.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user