„Routino” változatai közötti eltérés

Innen: GIS Wiki
41. sor: 41. sor:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
'''Konfigurálás'''
+
=== Konfigurálás ===
 
Szerkesszük az alábbi fájlt: /var/www/routino/www/routino/mapprops.js
 
Szerkesszük az alábbi fájlt: /var/www/routino/www/routino/mapprops.js
 
* A <code>library</code> változó értékével tudjuk módosítani, hogy az OpenLayers vagy a Leaflet felületet próbálja-e meg betölteni.
 
* A <code>library</code> változó értékével tudjuk módosítani, hogy az OpenLayers vagy a Leaflet felületet próbálja-e meg betölteni.
49. sor: 49. sor:
 
== Algoritmusok ==
 
== Algoritmusok ==
  
'''Előfeldolgozás'''
+
=== Előfeldolgozás ===
  
 
Ahhoz, hogy kellően gyors, és hatékony legyen az útvonalkeresés, az OSM adatokat feldolgozzuk, és eltároljuk egy lokális adatbázisban. A csomópontok közül a legtöbbet töröljük, és az érdekes csomópontokat hagyjuk meg. Ezután az izolált területeket töröljük.
 
Ahhoz, hogy kellően gyors, és hatékony legyen az útvonalkeresés, az OSM adatokat feldolgozzuk, és eltároljuk egy lokális adatbázisban. A csomópontok közül a legtöbbet töröljük, és az érdekes csomópontokat hagyjuk meg. Ezután az izolált területeket töröljük.
60. sor: 60. sor:
 
A fentebbi szabályokat felhasználva a csomópontok törlését annyiszor ismételhetjük, amíg csak a legfontosabb csomópontok maradnak már csak meg. Ezeket a csomópontokat szuper-csomópontnak nevezzük, és a szuper-csomópontokat szuper-utak kötik össze.
 
A fentebbi szabályokat felhasználva a csomópontok törlését annyiszor ismételhetjük, amíg csak a legfontosabb csomópontok maradnak már csak meg. Ezeket a csomópontokat szuper-csomópontnak nevezzük, és a szuper-csomópontokat szuper-utak kötik össze.
  
'''Útkeresés'''
+
=== Útkeresés ===
  
 
# A kezdőponttól útvonalat keresünk a legközelebbi szuper-csomóponthoz.
 
# A kezdőponttól útvonalat keresünk a legközelebbi szuper-csomóponthoz.
71. sor: 71. sor:
 
A 4. pontban lévő útvonalakat viszont a Dijkstra algoritmussal keresi meg.
 
A 4. pontban lévő útvonalakat viszont a Dijkstra algoritmussal keresi meg.
  
== Példaprogramok ==
+
= Hivatkozások =

A lap 2017. május 6., 10:07-kori változata

A routino egy útvonaltervező, mely OSM adatok alapján képes a legrövidebb, vagy a leggyorsabb utat kiszámítani két pont között.

Telepítés

Előfeltételek A program előfeltételeit célszerű telepíteni először

apt-get install gcc make libc6-dev libz-dev libbz2-dev
apt-get install libwww-perl liburi-perl libjson-pp-perl #These are optional

Telepítés A telepítéshez ez után le kell töltenünk a Routino weboldaláról a forráskódot, majd azt kibontva, le kell fordítanunk, majd be kell másolni az Apache webszerver mappájába.

make
cp -a web /var/www/routino
chown -R www-data:www-data /var/www/routino

Ezek után az OSM adatokat fel kell dolgozni:

cd /var/www/routino/data
../bin/planetsplitter --errorlog [Tetszőleges OSM fájl neve].osm.bz2

Miután megvolt, válasszuk ki, hogy OpenLayers vagy Leaflet felületen szeretnénk-e használni a Routino-t, és futtassuk ezt le:

cd /var/www/routino/www/[openlayers vagy leaflet]
sh -x install.sh

Ezek után még egy lépés hátra van, az apache /etc/apache2/sites-enabled/000-default fájljába ezeket a sorokat hozzá kell adni:

<Directory /var/www/routino>
    AllowOverride Options=MultiViews,ExecCGI FileInfo Limit
</Directory>

Konfigurálás

Szerkesszük az alábbi fájlt: /var/www/routino/www/routino/mapprops.js

  • A library változó értékével tudjuk módosítani, hogy az OpenLayers vagy a Leaflet felületet próbálja-e meg betölteni.
  • A westedge eastedge southedge northedge zoomout zoomin változókkal értelemszerűen a térkép mozgásterét tudjuk korlátozni, illetve a minimum és a maximum zoom értékeket.
  • A mapdata változóban tudjuk megadni, hogy melyik Tileserver-ről szedje le a térkép Tile-okat. Az alapértelmezett Tileserver jelenleg megfelelő lesz.

Algoritmusok

Előfeldolgozás

Ahhoz, hogy kellően gyors, és hatékony legyen az útvonalkeresés, az OSM adatokat feldolgozzuk, és eltároljuk egy lokális adatbázisban. A csomópontok közül a legtöbbet töröljük, és az érdekes csomópontokat hagyjuk meg. Ezután az izolált területeket töröljük.

A csomópontok megtartásának szabályai:

  • 3 vagy több útvonalszakaszt köt össze.
  • 2 útvonalszakaszt köt össze, de a két útvonalszakasznak más tulajdonságai vannak.
  • 2 útvonalszakaszt köt össze, de az útvonalszakaszok közt megváltoztak az útvonaltervezési korlátozások.

A fentebbi szabályokat felhasználva a csomópontok törlését annyiszor ismételhetjük, amíg csak a legfontosabb csomópontok maradnak már csak meg. Ezeket a csomópontokat szuper-csomópontnak nevezzük, és a szuper-csomópontokat szuper-utak kötik össze.

Útkeresés

  1. A kezdőponttól útvonalat keresünk a legközelebbi szuper-csomóponthoz.
  2. A végponttól útvonalat keresünk a legközelebbi szuper-csomóponthoz.
  3. Az 1. és a 2. szuper-csomópont közt megkeressük a szuper-útvonalat.
  4. A 3. pontban talált szuper-útvonalak mindegyikére megkeresi a legrövidebb utat a szuper-útvonal kezdő és végpontja között.

Az útvonal keresési algoritmust az A* algoritmussal (vagy legalábbis egy ehhez nagyon hasonlító algoritmussal) oldották meg. Ez az algoritmus a kezdő csomóponttól a legkisebb érték (legrövidebb, vagy leggyorsabb út) kiszámítására törekszik minden csomóponthoz.

A 4. pontban lévő útvonalakat viszont a Dijkstra algoritmussal keresi meg.

Hivatkozások