As mentioned in comments about #269 I have been working on implementing a 
reader for Ordnance Survey ITN roads data.

This has been based off the code of OSMReader and extracting common interfaces.

Due to its use of a modified version of the CarFlagEncoder until the recent 
updates I have been able to use a parsed ITN dataset as the working graph for 
an unmodified graphhopper web app. I hope to figure out where the 
incompatibility has arisen with the recent changes in the next few days. Error 
thrown during web app start up follows.

INFO: An exception was caught and reported. Message: 
java.lang.IllegalStateException: Encoding does not match:
Graphhopper config: car:com.graphhopper.routing.util.CarFlagEncoder
Graph: car|speedFactor=5.0|speedBits=5|turnCosts=false, 
dir:examples/os-itn-sample-gh/
java.lang.IllegalStateException: Couldn't load graph



the code is available in engaric/graphhopper if anyone is interested though it 
is still in an experimental shape at this stage. 
Currently supported features :-

1) Import of the basic road network
2) Import of road names
3) Grade separation.  An interesting feature of the ITN dataset is that roads 
that pass over each other do have the crossing point listed as a node, so 
additional metadata must be parsed to separate the links.


Work in progress
1) Partial categorisation of road types to speed.
2) One Way systems

Work to be done
1) Restrictions
2) Conditional Restrictions
3) Optimisation of the import process


ITN is a copyright data set and not available as Ordnance Survey opendata.  
However a sample file can be download from 

https://www.ordnancesurvey.co.uk/docs/sample-data/os-mastermap-itn-layer-sample-data.zip#sample-data-download

The dataset is a Great Britain road coverage appropriate for car navigation.

In some aspects the model of ITN can be compared to osm data, but in other 
areas it is modeled very differently.  This means the parsing process is 
already 4 stage rather than the current osm preprocess/write 2 phase parse.  
Some elements that in osm would be modeled on the way elements (from what I can 
see so far) are modeled on separate elements in ITN.


Stuart Adam
                                          
_______________________________________________
GraphHopper mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/graphhopper

Reply via email to