OSRM server generation with planet.

This commit is contained in:
Lev Dragunov 2016-02-05 15:23:13 +03:00
parent 8a0c4803d2
commit 3451d19904
2 changed files with 46 additions and 5 deletions

View file

@ -147,6 +147,8 @@ MERGE_INTERVAL=${MERGE_INTERVAL:-40}
NODE_STORAGE=${NODE_STORAGE:-${NS:-mem}}
ASYNC_PBF=${ASYNC_PBF-}
KEEP_INTDIR=${KEEP_INTDIR-1}
OSRM_URL=${OSRM_URL-}
MIGRATE=${MIGRATE-1}
# nproc is linux-only
if [ "$(uname -s)" == "Darwin" ]; then
CPUS="$(sysctl -n hw.ncpu)"
@ -282,7 +284,23 @@ if [ "$MODE" == "coast" ]; then
fail
fi
fi
if [ -z "$TRY_AGAIN" ]; then
if [ -z "$OSRM_URL" ]; then
log "OSRM_URL variable not set. Generate local world OSRM server."
putmode "Step RO: Generating whole world OSRM files for osrm-routed server."
bash "$ROUTING_SCRIPT" online >> "$PLANET_LOG" 2>&1
OSRM_URL="127.0.0.1:10012/"
bash "$ROUTING_SCRIPT" server >> "$PLANET_LOG" 2>&1
fi
if [ -z "$OSRM_URL" ]; then
log "OSRM_URL still abcent. Generating without world level roads."
else
python "$ROADS_SCRIPT" "$INTCOASTSDIR" "$OSRM_URL" >>"$LOG_PATH"/road_runner.log
fi
fi
fi
done
# Make a working copy of generated coastlines file
if [ -n "$OPT_COAST" ]; then
@ -342,11 +360,6 @@ if [ -n "$OPT_ROUTING" -a -z "$NO_REGIONS" ]; then
fi
fi
if [ -n "$OPT_ONLINE_ROUTING" -a -z "$NO_REGIONS" ]; then
putmode "Step RO: Generating OSRM files for osrm-routed server."
bash "$ROUTING_SCRIPT" online >> "$PLANET_LOG" 2>&1
fi
if [ "$MODE" == "inter" ]; then
putmode "Step 3: Generating intermediate data for all MWMs"
# 1st pass, run in parallel - preprocess whole planet to speed up generation if all coastlines are correct

View file

@ -163,6 +163,34 @@ elif [ "$1" == "online" ]; then
else
echo "Failed to create $OSRM_FILE" >> "$LOG"
fi
elif [ "$1" == "server" ]; then
OSRM_PATH="${OSRM_PATH:-$OMIM_PATH/3party/osrm/osrm-backend}"
OSRM_BUILD_PATH="${OSRM_BUILD_PATH:-$OMIM_PATH/../osrm-backend-release}"
[ ! -x "$OSRM_BUILD_PATH/osrm-extract" ] && fail "Please compile OSRM binaries to $OSRM_BUILD_PATH"
OSRM_THREADS=${OSRM_THREADS:-15}
OSRM_MEMORY=${OSRM_MEMORY:-50}
export STXXLCFG="$HOME/.stxxl"
OSRM_FILE="$INTDIR/planet.osrm"
PORT="10012"
RESTRICTIONS_FILE="$OSRM_FILE.restrictions"
LOG="$LOG_PATH/planet.log"
if [ -s "$OSRM_FILE" ]; then
echo "Starting: $OSRM_FILE" >> "$LOG"
pkill osrm-routed
echo "killed: $OSRM_FILE" >> "$LOG"
"$OSRM_BUILD_PATH/osrm-routed" "$OSRM_FILE" --borders "$OMIM_PATH/data/" --port "$PORT" >> "$LOG" 2>&1 &
echo "started: $OSRM_FILE" >> "$LOG"
echo "Waiting until OSRM server starts:" >> "$LOG"
until $(curl --output /dev/null --silent --head --fail http://localhost:$PORT/mapsme); do
printf '.' >> "$LOG"
sleep 5
done
else
echo "Can't find OSRM file: $OSRM_FILE" >> "$LOG"
fi
else
fail "Incorrect parameter: $1"