moving .ini files to root folder, rake task copy them to the sandbox when needed
This commit is contained in:
parent
f8cd4dbcd4
commit
ddd1462278
7
.gitignore
vendored
7
.gitignore
vendored
@ -1,4 +1,4 @@
|
|||||||
# Test folder #
|
# Test folders #
|
||||||
###################
|
###################
|
||||||
test/speedprofile.ini
|
test/speedprofile.ini
|
||||||
test/cache
|
test/cache
|
||||||
@ -8,10 +8,7 @@ test/stxxl
|
|||||||
|
|
||||||
# Sandbox folder #
|
# Sandbox folder #
|
||||||
###################
|
###################
|
||||||
sandbox/speedprofile.ini
|
sandbox
|
||||||
sandbox/data
|
|
||||||
sandbox/server.ini
|
|
||||||
sandbox/stxxl
|
|
||||||
|
|
||||||
# Compiled source #
|
# Compiled source #
|
||||||
###################
|
###################
|
||||||
|
|||||||
76
Rakefile
76
Rakefile
@ -3,6 +3,9 @@ require 'socket'
|
|||||||
require 'digest/sha1'
|
require 'digest/sha1'
|
||||||
require 'cucumber/rake/task'
|
require 'cucumber/rake/task'
|
||||||
|
|
||||||
|
SANDBOX = 'sandbox'
|
||||||
|
DATA_FOLDER = 'osm_data'
|
||||||
|
|
||||||
Cucumber::Rake::Task.new do |t|
|
Cucumber::Rake::Task.new do |t|
|
||||||
t.cucumber_opts = %w{--format pretty}
|
t.cucumber_opts = %w{--format pretty}
|
||||||
end
|
end
|
||||||
@ -53,78 +56,89 @@ end
|
|||||||
|
|
||||||
def write_server_ini osm_file
|
def write_server_ini osm_file
|
||||||
s=<<-EOF
|
s=<<-EOF
|
||||||
Threads = 1
|
Threads = 1
|
||||||
IP = 0.0.0.0
|
IP = 0.0.0.0
|
||||||
Port = 5000
|
Port = 5000
|
||||||
|
|
||||||
hsgrData=data/#{osm_file}.osrm.hsgr
|
hsgrData=#{DATA_FOLDER}/#{osm_file}.osrm.hsgr
|
||||||
nodesData=data/#{osm_file}.osrm.nodes
|
nodesData=#{DATA_FOLDER}/#{osm_file}.osrm.nodes
|
||||||
ramIndex=data/#{osm_file}.osrm.ramIndex
|
ramIndex=#{DATA_FOLDER}/#{osm_file}.osrm.ramIndex
|
||||||
fileIndex=data/#{osm_file}.osrm.fileIndex
|
fileIndex=#{DATA_FOLDER}/#{osm_file}.osrm.fileIndex
|
||||||
namesData=data/#{osm_file}.osrm.names
|
namesData=#{DATA_FOLDER}/#{osm_file}.osrm.names
|
||||||
EOF
|
EOF
|
||||||
File.open( 'server.ini', 'w') {|f| f.write( s ) }
|
File.open( 'server.ini', 'w') {|f| f.write( s ) }
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
desc "Rebuild and run tests"
|
desc "Rebuild and run tests."
|
||||||
task :default => [:build, :cucumber]
|
task :default => [:build, :cucumber]
|
||||||
|
|
||||||
desc "Build using Scons"
|
desc "Build using SConsstruct."
|
||||||
task :build do
|
task :build do
|
||||||
system "scons"
|
system "scons"
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Download OSM data"
|
desc "Setup config files."
|
||||||
task :download do
|
task :setup do
|
||||||
|
Dir.mkdir "#{SANDBOX}/#{DATA_FOLDER}" unless File.exist? "#{SANDBOX}/#{DATA_FOLDER}"
|
||||||
|
['server.ini','speedprofile.ini','extractor.ini','contractor.ini'].each do |file|
|
||||||
|
unless File.exist? "#{SANDBOX}/#{file}"
|
||||||
|
puts "Copying #{file} template to sandbox/#{file}"
|
||||||
|
FileUtils.cp file, "#{SANDBOX}/#{file}"
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
desc "Download OSM data."
|
||||||
|
task :download => :setup do
|
||||||
puts "Downloading..."
|
puts "Downloading..."
|
||||||
raise "Error while downloading data." unless system "curl http://download.geofabrik.de/osm/europe/#{osm_data_country}.osm.pbf -o sandbox/data/#{osm_data_country}.osm.pbf"
|
raise "Error while downloading data." unless system "curl http://download.geofabrik.de/osm/europe/#{osm_data_country}.osm.pbf -o #{SANDBOX}/#{DATA_FOLDER}/#{osm_data_country}.osm.pbf"
|
||||||
if osm_data_area_bbox
|
if osm_data_area_bbox
|
||||||
puts "Cropping and converting to protobuffer..."
|
puts "Cropping and converting to protobuffer..."
|
||||||
raise "Error while cropping data." unless system "osmosis --read-pbf file=sandbox/data/#{osm_data_country}.osm.pbf --bounding-box #{osm_data_area_bbox} --write-pbf file=sandbox/data/#{osm_data_area_name}.osm.pbf omitmetadata=true"
|
raise "Error while cropping data." unless system "osmosis --read-pbf file=#{SANDBOX}/#{DATA_FOLDER}/#{osm_data_country}.osm.pbf --bounding-box #{osm_data_area_bbox} --write-pbf file=#{SANDBOX}/#{DATA_FOLDER}/#{osm_data_area_name}.osm.pbf omitmetadata=true"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Crop OSM data"
|
desc "Crop OSM data"
|
||||||
task :crop do
|
task :crop do
|
||||||
if osm_data_area_bbox
|
if osm_data_area_bbox
|
||||||
raise "Error while cropping data." unless system "osmosis --read-pbf file=sandbox/data/#{osm_data_country}.osm.pbf --bounding-box #{osm_data_area_bbox} --write-pbf file=sandbox/data/#{osm_data_area_name}.osm.pbf omitmetadata=true"
|
raise "Error while cropping data." unless system "osmosis --read-pbf file=#{SANDBOX}/#{DATA_FOLDER}/#{osm_data_country}.osm.pbf --bounding-box #{osm_data_area_bbox} --write-pbf file=#{SANDBOX}/#{DATA_FOLDER}/#{osm_data_area_name}.osm.pbf omitmetadata=true"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Reprocess OSM data"
|
desc "Reprocess OSM data."
|
||||||
task :process do
|
task :process => :setup do
|
||||||
Dir.chdir "sandbox" do
|
Dir.chdir SANDBOX do
|
||||||
raise "Error while extracting data." unless system "../osrm-extract data/#{osm_data_area_name}.osm.pbf"
|
raise "Error while extracting data." unless system "../osrm-extract #{DATA_FOLDER}/#{osm_data_area_name}.osm.pbf"
|
||||||
puts
|
puts
|
||||||
raise "Error while preparing data." unless system "../osrm-prepare data/#{osm_data_area_name}.osrm #{osm_data_area_name}.osrm.restrictions"
|
raise "Error while preparing data." unless system "../osrm-prepare #{DATA_FOLDER}/#{osm_data_area_name}.osrm #{DATA_FOLDER}/#{osm_data_area_name}.osrm.restrictions"
|
||||||
puts
|
puts
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Delete preprocessing files"
|
desc "Delete preprocessing files."
|
||||||
task :clean do
|
task :clean do
|
||||||
File.delete *Dir.glob('sandbox/data/*.osrm')
|
File.delete *Dir.glob("#{SANDBOX}/#{DATA_FOLDER}/*.osrm")
|
||||||
File.delete *Dir.glob('sandbox/data/*.osrm.*')
|
File.delete *Dir.glob("#{SANDBOX}/#{DATA_FOLDER}/*.osrm.*")
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Run all test"
|
desc "Run all cucumber test"
|
||||||
task :test do
|
task :test do
|
||||||
system "cucumber"
|
system "cucumber"
|
||||||
puts
|
puts
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Run the routing server in the terminal. Press Ctrl-C to stop."
|
desc "Run the routing server in the terminal. Press Ctrl-C to stop."
|
||||||
task :run do
|
task :run => :setup do
|
||||||
Dir.chdir "sandbox" do
|
Dir.chdir SANDBOX do
|
||||||
write_server_ini osm_data_area_name
|
write_server_ini osm_data_area_name
|
||||||
system "../osrm-routed"
|
system "../osrm-routed"
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Launch the routing server in the background. Use rake:down to stop it."
|
desc "Launch the routing server in the background. Use rake:down to stop it."
|
||||||
task :up do
|
task :up => :setup do
|
||||||
Dir.chdir "sandbox" do
|
Dir.chdir SANDBOX do
|
||||||
abort("Already up.") if up?
|
abort("Already up.") if up?
|
||||||
write_server_ini osm_data_area_name
|
write_server_ini osm_data_area_name
|
||||||
pipe = IO.popen('../osrm-routed 1>>osrm-routed.log 2>>osrm-routed.log')
|
pipe = IO.popen('../osrm-routed 1>>osrm-routed.log 2>>osrm-routed.log')
|
||||||
@ -147,7 +161,7 @@ task :down do
|
|||||||
Process.kill 'TERM', pid
|
Process.kill 'TERM', pid
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Kill the routing server(s)."
|
desc "Kill all osrm-extract, osrm-prepare and osrm-routed processes."
|
||||||
task :kill do
|
task :kill do
|
||||||
each_process('osrm-routed') { |pid,state| Process.kill 'KILL', pid }
|
each_process('osrm-routed') { |pid,state| Process.kill 'KILL', pid }
|
||||||
each_process('osrm-prepare') { |pid,state| Process.kill 'KILL', pid }
|
each_process('osrm-prepare') { |pid,state| Process.kill 'KILL', pid }
|
||||||
@ -157,7 +171,7 @@ task :kill do
|
|||||||
wait_for_shutdown 'osrm-extract'
|
wait_for_shutdown 'osrm-extract'
|
||||||
end
|
end
|
||||||
|
|
||||||
desc "Get PID of routing server(s)."
|
desc "Get PIDs of all osrm-extract, osrm-prepare and osrm-routed processes."
|
||||||
task :pid do
|
task :pid do
|
||||||
each_process 'osrm-routed' do |pid,state|
|
each_process 'osrm-routed' do |pid,state|
|
||||||
puts "#{pid}\t#{state}"
|
puts "#{pid}\t#{state}"
|
||||||
|
|||||||
@ -2,29 +2,12 @@
|
|||||||
Feature: Oneway streets
|
Feature: Oneway streets
|
||||||
Handle oneways streets, as defined at http://wiki.openstreetmap.org/wiki/OSM_tags_for_routing
|
Handle oneways streets, as defined at http://wiki.openstreetmap.org/wiki/OSM_tags_for_routing
|
||||||
|
|
||||||
Scenario: hmm Handle various oneway tag values
|
@ba
|
||||||
Given the speedprofile "bicycle"
|
Scenario: Simple oneway
|
||||||
|
Given the defaults
|
||||||
Then routability should be
|
Then routability should be
|
||||||
| highway | oneway | forw | backw |
|
| highway | oneway | forw | backw |
|
||||||
| primary | | x | x |
|
| primary | yes | x | |
|
||||||
| primary | | x | x |
|
|
||||||
| primary | | x | x |
|
|
||||||
| primary | | x | x |
|
|
||||||
| primary | | x | x |
|
|
||||||
| primary | true | x | |
|
|
||||||
|
|
||||||
Scenario: Oneway street
|
|
||||||
Given the nodes
|
|
||||||
| a | b | c |
|
|
||||||
|
|
||||||
And the ways
|
|
||||||
| nodes | oneway |
|
|
||||||
| abc | -1 |
|
|
||||||
|
|
||||||
When I route I should get
|
|
||||||
| from | to | route |
|
|
||||||
| a | c | |
|
|
||||||
| c | a | abc |
|
|
||||||
|
|
||||||
Scenario: Around the Block
|
Scenario: Around the Block
|
||||||
Given the nodes
|
Given the nodes
|
||||||
|
|||||||
@ -129,6 +129,7 @@ end
|
|||||||
|
|
||||||
def write_osm
|
def write_osm
|
||||||
#write .oms file if needed
|
#write .oms file if needed
|
||||||
|
Dir.mkdir DATA_FOLDER unless File.exist? DATA_FOLDER
|
||||||
@osm_file = "#{DATA_FOLDER}/#{fingerprint}"
|
@osm_file = "#{DATA_FOLDER}/#{fingerprint}"
|
||||||
unless File.exist?("#{@osm_file}.osm")
|
unless File.exist?("#{@osm_file}.osm")
|
||||||
File.open( "#{@osm_file}.osm", 'w') {|f| f.write(osm_str) }
|
File.open( "#{@osm_file}.osm", 'w') {|f| f.write(osm_str) }
|
||||||
|
|||||||
0
sandbox/.gitignore
vendored
Normal file
0
sandbox/.gitignore
vendored
Normal file
9
server.ini
Normal file
9
server.ini
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
Threads = 8
|
||||||
|
IP = 0.0.0.0
|
||||||
|
Port = 5000
|
||||||
|
|
||||||
|
hsgrData=data/kbh.osrm.hsgr
|
||||||
|
nodesData=data/kbh.osrm.nodes
|
||||||
|
ramIndex=data/kbh.osrm.ramIndex
|
||||||
|
fileIndex=data/kbh.osrm.fileIndex
|
||||||
|
namesData=data/kbh.osrm.names
|
||||||
27
speedprofile.ini
Normal file
27
speedprofile.ini
Normal file
@ -0,0 +1,27 @@
|
|||||||
|
[bicycle]
|
||||||
|
accessTag = bicycle
|
||||||
|
defaultSpeed = 17
|
||||||
|
obeyOneways = yes
|
||||||
|
useRestrictions = yes
|
||||||
|
obeyBollards = no
|
||||||
|
|
||||||
|
cycleway = 19
|
||||||
|
primary = 19
|
||||||
|
primary_link = 19
|
||||||
|
secondary = 17
|
||||||
|
secondary_link = 17
|
||||||
|
tertiary = 15
|
||||||
|
residential = 15
|
||||||
|
unclassified = 15
|
||||||
|
living_street = 13
|
||||||
|
road = 13
|
||||||
|
service = 12
|
||||||
|
track = 12
|
||||||
|
path = 12
|
||||||
|
footway = 10
|
||||||
|
pedestrian = 5
|
||||||
|
pier = 5
|
||||||
|
steps = 3
|
||||||
|
ferry = 5
|
||||||
|
|
||||||
|
excludeFromGrid = ferry
|
||||||
Loading…
Reference in New Issue
Block a user