Merge pull request #5908 from systemed/debug_way
Profile debug script which fetches a way from OSM
This commit is contained in:
commit
dddf83db7b
@ -6,6 +6,8 @@
|
|||||||
- REMOVED: we no longer publish Node 8 binary modules (they are still buildable from source) [#5918](https://github.com/Project-OSRM/osrm-backend/pull/5918)
|
- REMOVED: we no longer publish Node 8 binary modules (they are still buildable from source) [#5918](https://github.com/Project-OSRM/osrm-backend/pull/5918)
|
||||||
- Misc:
|
- Misc:
|
||||||
- CHANGED: Unify `.osrm.turn_penalites_index` dump processing same with `.osrm.turn_weight_penalties` and `.osrm.turn_duration_penalties` [#5868](https://github.com/Project-OSRM/osrm-backend/pull/5868)
|
- CHANGED: Unify `.osrm.turn_penalites_index` dump processing same with `.osrm.turn_weight_penalties` and `.osrm.turn_duration_penalties` [#5868](https://github.com/Project-OSRM/osrm-backend/pull/5868)
|
||||||
|
- Profile:
|
||||||
|
- ADDED: Profile debug script which fetches a way from OSM then outputs the result of the profile. [#5908](https://github.com/Project-OSRM/osrm-backend/pull/5908)
|
||||||
- Infrastructure
|
- Infrastructure
|
||||||
- CHANGED: Bundled protozero updated to v1.7.0. [#5858](https://github.com/Project-OSRM/osrm-backend/pull/5858)
|
- CHANGED: Bundled protozero updated to v1.7.0. [#5858](https://github.com/Project-OSRM/osrm-backend/pull/5858)
|
||||||
- Windows:
|
- Windows:
|
||||||
|
44
profiles/debug_way.lua
Normal file
44
profiles/debug_way.lua
Normal file
@ -0,0 +1,44 @@
|
|||||||
|
--
|
||||||
|
-- Fetch a way from the OpenStreetMap API and run the given profile over it.
|
||||||
|
--
|
||||||
|
-- You'll need to install xml2lua first (may require admin privileges):
|
||||||
|
-- > luarocks install xml2lua
|
||||||
|
--
|
||||||
|
-- You may also need to install luasec and luasocket if you don't have them already.
|
||||||
|
--
|
||||||
|
-- Then to test way 2606296 using the foot profile:
|
||||||
|
-- > lua debug_way.lua foot 2606296
|
||||||
|
--
|
||||||
|
|
||||||
|
-- initialise libraries
|
||||||
|
local pprint = require('lib/pprint')
|
||||||
|
local Debug = require('lib/profile_debugger')
|
||||||
|
local xml2lua = require('xml2lua')
|
||||||
|
local handler = require('xmlhandler.tree')
|
||||||
|
local https = require('ssl.https')
|
||||||
|
|
||||||
|
-- load the profile
|
||||||
|
Debug.load_profile(arg[1])
|
||||||
|
|
||||||
|
-- load way from the OSM API
|
||||||
|
local url = 'https://www.openstreetmap.org/api/0.6/way/'..arg[2]
|
||||||
|
local body, statusCode, headers, statusText = https.request(url)
|
||||||
|
|
||||||
|
-- parse way tags
|
||||||
|
local parser = xml2lua.parser(handler)
|
||||||
|
parser:parse(body)
|
||||||
|
|
||||||
|
-- convert XML-flavoured table to a simple k/v table
|
||||||
|
local way = {}
|
||||||
|
for i, p in pairs(handler.root.osm.way.tag) do
|
||||||
|
way[p._attr.k] = p._attr.v
|
||||||
|
end
|
||||||
|
|
||||||
|
-- call the way function
|
||||||
|
local result = {}
|
||||||
|
Debug.process_way(way,result)
|
||||||
|
|
||||||
|
-- print input and output
|
||||||
|
pprint(way)
|
||||||
|
print("=>")
|
||||||
|
pprint(result)
|
@ -123,11 +123,14 @@ function Debug.process_way(way,result)
|
|||||||
result.forward_classes = {}
|
result.forward_classes = {}
|
||||||
result.backward_classes = {}
|
result.backward_classes = {}
|
||||||
|
|
||||||
-- intercept tag function normally provided via C++
|
-- intercept tag functions normally provided via C++
|
||||||
function way:get_value_by_key(k)
|
function way:get_value_by_key(k)
|
||||||
Debug.register_tag_fetch(k)
|
Debug.register_tag_fetch(k)
|
||||||
return self[k]
|
return self[k]
|
||||||
end
|
end
|
||||||
|
function way:get_location_tag(k)
|
||||||
|
return nil
|
||||||
|
end
|
||||||
|
|
||||||
-- reset tag counts
|
-- reset tag counts
|
||||||
Debug:reset_tag_fetch_counts()
|
Debug:reset_tag_fetch_counts()
|
||||||
|
Loading…
Reference in New Issue
Block a user