„Mapnik” változatai közötti eltérés
a (→Szükséges csomagok) |
|||
| 1. sor: | 1. sor: | ||
<center>'''Rasztertérképek készítése a Turistautak.hu adatbázisából Mapnik eszközkészlettel'''</center> | <center>'''Rasztertérképek készítése a Turistautak.hu adatbázisából Mapnik eszközkészlettel'''</center> | ||
| − | Ezen dokumentáció még fejlesztés alatt áll. Célja, hogy a megszerzett tapasztalatokat megosszam a Turistautak.hu közösségével és reprodukálhatóvá tegyem azt a folyamatot ameddig eljutottam. (--[[Szerkesztő:bpeti68|bpeti68]] | + | Ezen dokumentáció még fejlesztés alatt áll. Célja, hogy a megszerzett tapasztalatokat megosszam a Turistautak.hu közösségével és reprodukálhatóvá tegyem azt a folyamatot ameddig eljutottam. (--[[Szerkesztő:bpeti68|bpeti68]]) |
Egy mintatérkép [http://peterbus.extra.hu/tuhu/ itt] megtekinthető. Mivel az ftp elérése meglehetősen kaotikus és | Egy mintatérkép [http://peterbus.extra.hu/tuhu/ itt] megtekinthető. Mivel az ftp elérése meglehetősen kaotikus és | ||
| 29. sor: | 29. sor: | ||
===Mapnik környezet és térképleíró beállítása=== | ===Mapnik környezet és térképleíró beállítása=== | ||
| − | TODO | + | '''TODO''' |
* POI-k konvertálása hiányzik a tuhu2osm scripből. | * POI-k konvertálása hiányzik a tuhu2osm scripből. | ||
* OSM.XML "térkép stílus leíró" rejtelmeinek feltárása. | * OSM.XML "térkép stílus leíró" rejtelmeinek feltárása. | ||
| 97. sor: | 97. sor: | ||
A 2-5 lépésekhez használhatod [http://peterbus.extra.hu/tuhu/unzip_all ezt] a shell scriptet. | A 2-5 lépésekhez használhatod [http://peterbus.extra.hu/tuhu/unzip_all ezt] a shell scriptet. | ||
A 7. lépés előtte a generate_tiles.py scriptben beállítandók a kívánt zoom szintek és a generálandó terület koordinátái, mivel a frissen telepített mapnik alapértelmezésben a teljes földgolyót le akarja gyártani. | A 7. lépés előtte a generate_tiles.py scriptben beállítandók a kívánt zoom szintek és a generálandó terület koordinátái, mivel a frissen telepített mapnik alapértelmezésben a teljes földgolyót le akarja gyártani. | ||
| + | |||
| + | ===A renderelő mechanizmus teljesítménye=== | ||
| + | Jelenleg egy középkategóriás gépen futtatom. | ||
| + | Alaplap: ASUS P4P800-VM/S alaplap | ||
| + | Processzor: Hyperthread-es 2800MHz-es Northwood mag, 800FSB | ||
| + | Memória: 512MB | ||
| + | |||
| + | Ezzel a konfigurációval, magassági szintvonalak nélkül a teljes országot 7-15 -ös zoomszinten kb.13 óra alatt készíti el. | ||
| + | Szintvonalakkal ez felment duplájára. | ||
| + | Nyilván, ha egyszer be van állítva és egyszer már legenerálta a teljes országot, a változott kisebb régiókkal sokkal hamarabb végez. | ||
| + | Jelenleg készítem azt a scriptet, amit paraméterezve indítva csak az adott régiót befoglaló négyzet kockáit generálja le. | ||
===Felhasznált dokumentációk=== | ===Felhasznált dokumentációk=== | ||
A lap 2008. november 17., 23:53-kori változata
Ezen dokumentáció még fejlesztés alatt áll. Célja, hogy a megszerzett tapasztalatokat megosszam a Turistautak.hu közösségével és reprodukálhatóvá tegyem azt a folyamatot ameddig eljutottam. (--bpeti68)
Egy mintatérkép itt megtekinthető. Mivel az ftp elérése meglehetősen kaotikus és több mint 60 000 képkockát kell feltölteni az egész országrész lefedéséhez, így csak akkor frissítem, ha lényeges változásokat sikerül elérnem a megjelenésben.
Tartalomjegyzék |
Használt oprendszer
Ubuntu8.10
A lenti csomagok nagyrésze MS Windows alá is megtalálható, de van köztük 1-2 aminek csak a forrása érhető el, így a fordítással magunknak kell bajlódni.
Szükséges csomagok
- mapnik-utils
- python-mapnik
- mapnik-plugins
- libmapnik0.5
- gdal-bin
- python2.5
- postgreSQL
- python-pygresql
- postGIS
- osm2pgsql
- libgdal1-dev -ez csak a domborzatárnyékolás előállításához kell
Továbbá szükséges még szmi kolléga tuhu2osm.c programjának módosított változata Ennek fordítása: gcc tuhu2osm.c -o tuhu2osm
Mapnik környezet és térképleíró beállítása
TODO
- POI-k konvertálása hiányzik a tuhu2osm scripből.
- OSM.XML "térkép stílus leíró" rejtelmeinek feltárása.
- turistajelzések megjelenítése a térképen.
Domborzat színezés és árnyékolás
Domborzatárnyékoláshoz le kell töltenünk az SRTM adatokat a következő helyről: ftp://e0srp01u.ecs.nasa.gov/srtm/version2/SRTM3/Eurasia/ Az adatok zipelve, 1x1 fokos szegmensekre osztva tartalmazzák a golyóbis magasságadatait. Minket tehát a következő állományok érdekelnek: ftp://e0srp01u.ecs.nasa.gov/srtm/version2/SRTM3/Eurasia/N45E016.hgt.zip ... ftp://e0srp01u.ecs.nasa.gov/srtm/version2/SRTM3/Eurasia/N48E023.hgt.zip
Szükségünk lesz még az srtm_generate_hdr.sh scriptre. Ha lent vannak az adatok, bontsuk ki őket a következő scripttel:
#!/bin/bash
PREP_TABLE="1"
for X in *.hgt.zip; do
yes | ./srtm_generate_hdr.sh $X
rm -f "${X%%.zip}"
# Import 10m contours
rm -f "${X%%.hgt.zip}.shp" "${X%%.hgt.zip}.shx" "${X%%.hgt.zip}.dbf"
gdal_contour -i 10 -snodata 32767 -a height "${X%%.hgt.zip}.tif" "${X%%.hgt.zip}.shp"
[ "$PREP_TABLE" ] && shp2pgsql -p -I -g way "${X%%.hgt.zip}" contours | psql -q gis
shp2pgsql -a -g way "${X%%.hgt.zip}" contours | psql -q gis
rm -f "${X%%.hgt.zip}.shp" "${X%%.hgt.zip}.shx" "${X%%.hgt.zip}.dbf"
rm -f "${X%%.hgt.zip}.bil"
rm -f "${X%%.hgt.zip}.hdr"
rm -f "${X%%.hgt.zip}.prj"
# rm -f "${X%%.hgt.zip}.tif"
unset PREP_TABLE
done
A fenti script eredetileg betolta PostGIS adatbázisunkba a magasságvonalak rajzolásához szükséges adatokat, majd kitörölte a generált shape fájlokat. Az utolsó rm -f "${X%%.hgt.zip}.tif" parancs kiiktatásával azonban a tif-eket megőrizzük. Ezekre lesz szükségünk az árnyékolás és domborzatszínezés elkészítéséhez. Ezt a következő color_all nevű script hajtja végre.
#!/bin/bash for X in N*.tif; do echo "Coloring $X" ./color-relief $X scale.txt "C_$X" echo "Shading $X" ./hillshade $X "H_$X" done
TODO
- geoTiff-ek összefűzése/darabolása
- átlátszóság beállítása
- OpenLayers réteg elkészítése a kezelésükhöz
Képek előállítása
- Töltsd le a régiók mp állományait zip-elve. Ehhez értelemszerűen rendelkezned kell a megfelelő jogosultságokkal.
- Csomagold ki és fűzd össze őket egyetlen mp-vé.
- Konvertáld át UTF-8 formátumba.
- Engedd rá a tuhu2osm programra: (tuhu2osm tuhu.mp data.osm)
- Importáld be a Postgres adatbázisba (osm2pgsql -m data.osm)
- Szerkeszd a set-mapnik-env file-t. Állítsd be az összes MAPNIK_* környezeti változót, hogy illeszkedjen a könyvtárrendszeredhez illetve adatbázis kapcsolatodhoz, majd futtasd a ./customize-mapnik-map >$MAPNIK_MAP_FILE parancsot. Ez létrehozza a rendszerednek megfelelő beállítású OSM.XML térképleíró állományt.
- Indítsd el a képkockák generálását (a mapnik könyvtárában kiadott ./set-mapnik-env ./generate_tiles.py paranccsal), vagy ha egyetlen képre akarod a térképet kirajzoltatni akkor a generate_image.py -t.
A 2-5 lépésekhez használhatod ezt a shell scriptet. A 7. lépés előtte a generate_tiles.py scriptben beállítandók a kívánt zoom szintek és a generálandó terület koordinátái, mivel a frissen telepített mapnik alapértelmezésben a teljes földgolyót le akarja gyártani.
A renderelő mechanizmus teljesítménye
Jelenleg egy középkategóriás gépen futtatom. Alaplap: ASUS P4P800-VM/S alaplap Processzor: Hyperthread-es 2800MHz-es Northwood mag, 800FSB Memória: 512MB
Ezzel a konfigurációval, magassági szintvonalak nélkül a teljes országot 7-15 -ös zoomszinten kb.13 óra alatt készíti el. Szintvonalakkal ez felment duplájára. Nyilván, ha egyszer be van állítva és egyszer már legenerálta a teljes országot, a változott kisebb régiókkal sokkal hamarabb végez. Jelenleg készítem azt a scriptet, amit paraméterezve indítva csak az adott régiót befoglaló négyzet kockáit generálja le.
Felhasznált dokumentációk
Mapnik telepítése, használata
Domborzat színezés, árnyékolás
Forrás:
GDAL-based DEM utilities [Mapnik-users Shaded Relief] DEMTOOLS fordítása Ubuntu8.10 alatt: g++ `gdal-config --cflags` hillshade.cpp -o hillshade `gdal-config --libs` g++ `gdal-config --cflags` color-relief.cpp -o color-relief.cpp `gdal-config --libs` g++ `gdal-config --cflags` aspect.cpp -o aspect `gdal-config --libs` g++ `gdal-config --cflags` slope.cpp -o slope `gdal-config --libs`