Remind: This is a PoC so it's not for production at all.
This PoC is a reasearch to generate create a service to generate "Areas of coverage" or "Driving Distance". The first implementation is using AKKA to implement an in-memory database to represent the Graph and the algorithm to generate the map of nodes.
All information used to generate the network is using info from OpenStreetMap and the library osm4scala to parse the file in Scala.
Basically, all ways with the tag highway are bidirectional, except when the tag oneway is present. Depending of the value:
- If the value is "yes" the direction the natural drawn direction.
- If the values is "-1", the direction the opposite to the natural drawn direction.
- If the value is "no" or the tag is not present, it is a bidirectional way.
- osm4scala
- oneway tag
- Forward & backward, left & right
- Identify direction in the editor
- JAI
- GDAL
- GeoTools
- Temnur's isolines
~/apps/hadoop-2.7.4$ time bin/hdfs dfs -put /tmp/blocks osm/planet
real 41m50.689s
user 3m17.480s
sys 2m9.436s- Store one street per Actor, instead a node, so we save a lot of calls between nodes and it is necessary only check if we passed before by the street and not be the node.
- Store a set of streets (per osm block) per Actor.