Muudatused

OSM kaardiserver Mandriva 2010 Spring baasil

Lisatud 9364 baiti, 17. august 2011, kell 08:28
[[kategooria:mandriva]]
 
== Eesmärk ==
Selle lehe eesmärk on juhendada, kuidas paigaldada oma arvutisse OSM -i kaardiserver. Lõpptulemusena on sul olemas postgre andmebaas osm -i andmetega, seadistatud mapniku kaardipiltide generaator, apache weebi server kos mod_tile mooduliga, mis reaalajas genereerib kaardi pilte ja näidis leht kaardi vaatamiseks.
== Mis asi on OSM ==
OpenStreetMap (ehk OSM) on justkui maakaartide Vikipeedia. Inimesed nagu Sina koguvad asukohainfot GPS-seadmetega või vabalt kasutatavatelt aerofotodelt ja kaartidelt, laevad selle üles ja lisavad sinna nimed ning muud tunnused (sildid). Tulemusena saadav vabalt kasutatav maailma kaart asub aadressil [http://www.openstreetmap.org www.openstreetmap.org].
 
OpenStreetMapi eesmärk on luua ja jagada tasuta ja vaba kasutusega geograafilist infot, eelkõige teedekaarte. Projekt algatati, sest enamus kaartidest ja kaardiandmetest, mida peetakse "tasuta" andmeteks, on tegelikult õiguslike või tehniliste piirangutega, mis takistab nende kasutamist loomingulisteks, ärilisteks ja muudeks ettearvamatuteks vajadusteks.
 
Eestis on kohalikuks OSM -i arendamiseks loodud ka MTÜ Avatud Maakaardi Selts. MTÜ Avatud Maakaardi Selts on organisatsioon, mille tegevuse eesmärgiks on vaba geoinfo kogumine, korrastamine, talletamine ning levitamine. Avatud Maakaardi Selts teeb seda nii oma liikmete kui teiste asjast huvitatud isikute ja organisatsioonide ühise välitöö kui avalikest andmeallikaist pärit andmete koondamise kaudu. Kõik projekti raames kogutud andmed talletatakse globaalse projekti Openstreetmap raames ning on kõikidele soovijatele kättesaadavad vaba kasutust võimaldava litsentsi (Creative Commons Attribution Share-Alike v 2.0) alusel.
 
Avatud Maakaardi seltsi kohta lähemalt infot aadressil [http://www.maakaart.ee Avatud Maakaardi Selts].
== Riistvaralised nõuded ==
Maailma kaardi puhul 16G miinimum 24G soovituslik
 
Kui on kavas kogu planeedi või ka euroopa kaarti hakata näitama siis on soovitav varakult hakata neid andmeid alla laadima, kuna maailma fail (seisuga 08-Jul-2010 00:45) on 10G, Euroopa (seisuga 13 juuli 2010) 3.5G. Hetkel veel Eesti faili pärast pole vaja muretseda, see on kõigest 32M suur (seisuga 13 juuli 2010). Kõik on tihendatud bz2 -ga.
 
* [http://planet.openstreetmap.org/planet-latest.osm.bz2 Maailm]
* [http://downloads.cloudmade.com/europe/europe.osm.bz2 Euroopa]
* [http://downloads.cloudmade.com/europe/estonia/estonia.osm.bz2 Eesti]
 
== Mandriva paigaldus ==
== Postgre piagaldus ja seadistamine ==
Kui puhas install on tehtud tuleb paigaldada postgresql andmebaas ja postgre postgis -i laiendus.
urpmi postgresql8.4, postgresql8.4-contrib, postgissubversion task-c++-devel lib64xml2-devel lib64geos-devel postgresql8.4-devel lib64bzip2-devel lib64proj-devel lib64boost-devel lib64png-devel lib64jpeg-devel lib64tiff-devel lib64curl-devel cairo-devel lib64cairomm1.0-devel pycairo-devel lib64ltdl-devel perl-IPC-ShareLite perl-JSON perl-GD perl-LWP-Online java-1.6.0-sun
Peale postgre paigaldamist tuleks see ka käivitada, mille jooksul luuakse default andmebaasid ja configuratsiooni fail.
autovacuum = off
Muuda /etc/sysctl.confja lisa faili lõppu rida
kernel.shmmax = 268435456536870912
Nüüd tuleks postgre -le restart teha
Järgmiseks loome baasi, kasutaja ja plpgsql keele
* createuser mapnik
* createdb -E UTF8 -O mapnik gis
* createlang plpgsql gis
[root@xxx]# su - postgres
Seadistame ära postgis -i. Lisame postgre -le postgisi laiendused:
* psql -d gis -f /usr/share/postgresql/contrib/postgis-1.5/postgis.sql
[postgres@andres ~]$ psql -d gis -f /usr/share/postgresql/contrib/postgis-1.5/postgis.sql
Anname teatud tabelitele kasutaja mapnik õigused:
* ALTER TABLE geometry_columns OWNER TO mapnik;
* ALTER TABLE spatial_ref_sys OWNER TO mapnik;
[postgres@andres ~]$ psql -d gis
gis=# \q
[postgres@andres ~]$
 
 
== osm2pgsql ==
Kui andmebaas on paigaldatud ja seadistatud tuleb andmed baasi importida. Selleks tuleb kasutada programmi nimega '''osm2pgsql'''.
* svn co http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/
[andres@xxx ~]$ svn co http://svn.openstreetmap.org/applications/utils/export/osm2pgsql/
A osm2pgsql/Makefile.in
A osm2pgsql/debian
A osm2pgsql/debian/control
...
A osm2pgsql/README.txt
A osm2pgsql/pgsql.h
A osm2pgsql/output-gazetteer.h
Checked out revision 22342.
[andres@xxx ~]$
 
Kompileerime osm2pgsql -i
* cd osm2pgsql
* ./autogen.sh
* ./configure
* make
* make install
 
[andres@xxx ] cd osm2pgsql/
[andres@xxx osm2pgsql]$ ./autogen.sh
[andres@xxx osm2pgsql]$ ./configure
checking for gcc... gcc
checking whether the C compiler works... yes
checking for C compiler default output file name... a.out
...
configure: creating ./config.status
config.status: creating Makefile
config.status: creating config.h
[andres@xxx osm2pgsql]$ make
gcc -g -O2 -Wall -Wextra -I/usr/include/libxml2 -I/usr/include -I/usr/include -DVERSION=\"0.69-22342\" -DHAVE_PTHREAD - DOSM2PGSQL_DATADIR=\"/usr/local/share/osm2pgsql\" -c -o expire-tiles.o expire-tiles.c
...
gcc -g -O2 -Wall -Wextra -I/usr/include/libxml2 -I/usr/include -I/usr/include -DVERSION=\"0.69-22342\" -DHAVE_PTHREAD - DOSM2PGSQL_DATADIR=\"/usr/local/share/osm2pgsql\" -c -o UTF8sanitizer.o UTF8sanitizer.c
g++ -c -o build_geometry.o build_geometry.cpp
gcc -o osm2pgsql expire-tiles.o input.o keyvals.o middle-pgsql.o middle-ram.o osm2pgsql.o output-gazetteer.o output-null.o output-pgsql.o pgsql.o rb.o reprojection.o sprompt.o text-tree.o UTF8sanitizer.o build_geometry.o -g -O2 -Wall -Wextra - I/usr/include/libxml2 -I/usr/include -I/usr/include -DVERSION=\"0.69-22342\" -DHAVE_PTHREAD - DOSM2PGSQL_DATADIR=\"/usr/local/share/osm2pgsql\" -lxml2 -lz -lm -L/usr/lib64 -lgeos -L/usr/lib64 -lpq -lbz2 -lz -g -lproj -lstdc++ -lpthread
[andres@xxx osm2pgsql]$ su
[root@xxx osm2pgsql]# make install
mkdir -p /usr/local/bin
install -m 0755 osm2pgsql /usr/local/bin
mkdir -p /usr/local/share/osm2pgsql
install -m 0644 default.style /usr/local/share/osm2pgsql
[root@andres osm2pgsql]#
 
Selleks, et saaks osm -i andmeid postgre baasi importida tuleb baasi lisada porjektsioonide tugi. Selle toe saab lisada .sql failiga mis tuli kaasa osm2pgsql programmiga: 900913.sql
 
Kõigepealt kopeerime faili postgre kodukataloogi ja anname talle õigusi juurde, et postgres kasutajal saaks seda baasi importida
* [root@xxx osm2pgsql]# cp 900913.sql ~postgres/
* [root@xxx osm2pgsql]# chmod 777 /var/lib/pgsql/900913.sql
 
Impordime projektsiooni faili
* psql -f 900913.sql -d gis
 
[root@xxx osm2pgsql]# su - postgres
[postgres@xxx ~]$ psql -f 900913.sql -d gis
INSERT 0 1
[postgres@xxx ~]$
 
Selleks ajaks peaks olema kohal andme fail. See tuleb kopeerida postgres kodukataloogi ja anda talle kasutaja postgres õigused või garanteerida, et postgres kasutajal on õigus seda faili
 
Praeguse näite puhul imporditakse euroopa fail, mis paikneb eraldi kettal, mis peaks andma kiirust impordile juurde.
* [root@xxx osm2pgsql]# chmod 777 /media/disk/europe.osm.
 
Nüüd hakkame andmeid baasi importima. Selleks võiks igaks juhuks rohkem aega varuda, kui ei ole tegu eesti andmete impordiga. Halvemal juhul on euroopa andmete import võtnud 4G mälu juures 5 ööpäeva tavalise desktop masina puhul.
* osm2pgsql --slim -d gis -S /usr/local/share/osm2pgsql/default.style -C4000 /media/disk/europe.osm.bz2
 
[postgres@xxx ~]$ osm2pgsql --slim -d gis -S /usr/local/share/osm2pgsql/default.style -C4000 /media/disk/europe.osm.bz2
osm2pgsql SVN version 0.69-22342
Using projection SRS 900913 (Spherical Mercator)
Setting up table: planet_osm_point
NOTICE: table "planet_osm_point" does not exist, skipping
...
Reading in file: /media/disk/europe.osm.bz2
Processing: Node(870k) Way(0k) Relation(0k)
...
Läheb kaua aega
...
[postgres@xxx ~]
 
 
== Mapniku paigaldus ==
Mapnik on vabavaraline vahend kaardi(stamis) rakenduste loomiseks. Mapnik on kirjutatud C++ -is ning tal on ka Pythoni ''bindings''. Mapnikut võib vabalt kasutada nii töölaua kui ka weebi rakenduste arendamiseks. Mapniku peamine eesmärk on luua ilusaid kaarte.
 
Kuigi Mandriva 2010.1 -l on olemas mapniku paketid tasub seda hoopis lähtekoodist ise ehitada.
 
Laeme mapniku svn -ist
 
''Artikli kirjutamise ajal oli viimane mapniku versioon 0.7.1''
 
* svn co http://svn.mapnik.org/tags/release-0.7.1 mapnik
 
[anz@localhost ~]$ svn co http://svn.mapnik.org/tags/release-0.7.1 mapnik
A mapnik/plugins
A mapnik/plugins/input
A mapnik/plugins/input/raster
A mapnik/plugins/input/raster/raster_datasource.hpp
A mapnik/plugins/input/raster/raster_info.hpp
...
A mapnik/INSTALL
A mapnik/SConstruct
A mapnik/COPYING
U mapnik
Checked out revision 2190.
[anz@localhost ~]$
 
Konfigureerime ...
 
* python scons/scons.py configure
 
[root@localhost mapnik]# python scons/scons.py configure
scons: Reading SConscript files ...
Welcome to Mapnik...
Configuring build environment...
SCons CONFIG found: 'config.py', variables will be inherited...
INPUT_PLUGINS=postgis,raster,shape BOOST_INCLUDES=/usr/include BOOST_LIBS=/usr/lib64 BINDINGS=all
Configuring on Linux in *release mode*...
...
*Configure complete*
Now run "python scons/scons.py" to build or "python scons/scons.py install" to install
[root@localhost mapnik]#
 
Ehitame ja installime mapniku
 
* python scons/scons.py
 
[root@localhost mapnik]# python scons/scons.py
scons: Reading SConscript
Welcome to
Using previous successful configuration...
Re-configure by running "python scons/scons.py configure".
scons: done reading SConscript files.
scons: Building targets ...
...
scons: done building targets.
[root@localhost mapnik]#
 
Installime mapniku
 
* python scons/scons.py install
 
[root@localhost mapnik]# python scons/scons.py install
scons: Reading SConscript files ...
Welcome to Mapnik...
...
scons: done building targets.
[root@localhost mapnik]#
84
muudatust

Aita seda lehekülge täiustada!