Rotas PT

From OpenStreetMap Wiki
Jump to navigation Jump to search

A informação existente no mapa OSM é muito interessante para o cálculo de rotas, quer de transportes públicos, de carro, a pé, de bicicleta, de cadeira de rodas, etc.

O Rotas PT é um grupo informal de trabalho com vista ao estudo e exploração de rotas sobre os dados OSM.

Por onde começar

Outro Projectos

Serviços de Routing disponíveis

Software disponível

OSMRM

OSM2PO

pgRouting

Tutorial com importação dos dados OSM para PostGIS. Mais informação sobre a construção de uma interface web para Routing.

Routino

É necessário ter o flex instalado.

sudo apt-get install gcc make libc6-dev libz-dev libbz2-dev flex
sudo apt-get install libjson-pp-perl

Baixar o routino

mkdir public_html
cd public_html/
wget http://www.routino.org/download/routino-2.7.tgz

Compilar o routino

tar xvzf routino-2.7.tgz
cd routino-2.7
make

Baixar dados do OSM para o routino

cd web/data
wget http://download.geofabrik.de/europe/portugal-latest.osm.bz2
../bin/planetsplitter portugal-latest.osm.bz2

Calcular um caminho na linha de comandos

Com o JOSM, escolher dois pontos, da área descarregada, para serem usados no cálculo do routing.

../bin/router --lon1=-8.4242371 --lat1=41.5563023 --lon2=-8.4031731 --lat2=41.5474053 --output-gpx-track --shortest

Se correr bem, é gerado um ficheiro shortest-track.gpx. Esse ficheiro pode e deve ser visualizado no JOSM, por exemplo, para confirmar que o cálculo está a funcionar.

Configurar o Apache

sudo medit /etc/apache2/sites-enabled/000-default
        AddHandler cgi-script .cgi 
        Alias /routino/ "/home/user/public_html/routino-2.7/web/"
        <Directory "/home/user/public_html/routino-2.7/web/">
                Options +Indexes +FollowSymLinks +MultiViews +ExecCGI
                AllowOverride All
                Order allow,deny
                allow from all
        </Directory>
sudo apache2ctl graceful

Testar, abrindo: http://localhost/routino/

Eventualmente, poderá ser preciso instalar alguns módulos no Apache, se for uma configuração nova.

sudo a2enmod cgi userdir

Configuração web do routino

cd ../www/openlayers/
sh -x install.sh

cd ../leaflet
sh -x install.sh

cd ../..
chmod -R a+rw results

Confirmar que abrem: http://localhost/routino/www/routino/router.html

Aparece o OpenStreetMap centrado em Inglaterra. Para mudar a visualização inicial do mapa, fazer:

cd www/routino/ (or cd /home/user/public_html/routino-2.6/web/www/routino)
medit mapprops.js

 westedge: -15.0,          // Minimum longitude (degrees)
 eastedge:  -2.0,          // Maximum longitude (degrees)
 southedge: 33.5,          // Minimum latitude (degrees)
 northedge: 45.0,          // Maximum latitude (degrees)
 zoomout:    7,            // Minimum zoom
 zoomin:    18,            // Maximum zoom

Abrir http://localhost/routino/www/routino/router.html

Após esta alteração, o mapa já deverá aparecer centrado no continente, e deverá ser possível calcular rotas.

Caso algo falhe, deve-se utilizar o Firebug ou as ferramentas do Chrome para ver o que está a acontecer.

Mac Users

Se instalar no Mac OS X, poderá não conseguir ver as rotas calculadas. Se lhe surgir o erro "errorloadingGML", deverá alterar o ficheiro router.pl, e trocar o comando md5sum por apenas md5.

vi router.pl
   # chomp($uuid=`echo '$params' $$ | md5sum | cut -f1 '-d '`);
   chomp($uuid=`echo '$params' $$ | md5 | cut -f1 '-d '`);

Atualizar os dados automaticamente

cd ~/public_html/routino-2.7/web/data
medit sacaportugal.osm.sh
chmod +x sacaportugal.osm.sh

Ficheiro sacaportugal.osm.sh

#!/bin/bash
#
cd ~/public_html/routino-2.7/web/data
find . -type f -mtime +7 -name '*'.osm.bz2 -exec rm -f \{\} \;
data=`date +%Y%m%d%H%M`
planeta=portugal-latest.$data.osm.bz2
server="download.geofabrik.de"
wget -N http://$server/europe/portugal-latest.osm.bz2 -O $planeta
../bin/planetsplitter --errorlog $planeta

Configurar o crontab

crontab -e
# m h  dom mon dow   command
45 5 * * * $HOME/public_html/routino-2.7/web/data/sacaportugal.osm.sh

YOURS