Skip to content
Proof of concept to implement a service to calculate the driving distance using osm network
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets/osm
drivingdistance/src
loader/src
model/src/main/scala/com/simplexportal/spatial/model
project
.gitignore
LICENSE.md
README.md
build.sbt

README.md

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.

Information

How to know the way direccion

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.

Info:

Metrics.

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.
You can’t perform that action at this time.