Rotas PT
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
- Necessidades Especiais Tags que possam interessar a pessoas com necessidades especiais
Outro Projectos
- wheelmap.org
- Wheelchair routing, navegação em cadeira de rodas.
- LoroDux, navegação para invisuais.
- Cálculo de Rotas de Cadeira de Rodas, navegação em cadeira de rodas no Campus de Gualtar UM, Braga
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