Driving Distance Algorithm implementation.
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.
How to know the way direccion
- 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.
- oneway tag
- Forward & backward, left & right
- Identify direction in the editor
- Temnur's isolines
Time transferring all blocks of the full planet
~/apps/hadoop-2.7.4$ time bin/hdfs dfs -put /tmp/blocks osm/planet real 41m50.689s user 3m17.480s sys 2m9.436s
Next steps approachs:
- 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.