Mapserver
Mapserver on Minnesotan yliopiston yhteistyössä NASAn kanssa kehittämä ohjelma, jolla voi tuottaa mm. tietokannassa olevasta paikkatietoaineistosta karttakuvia.
Tällä sivulla on ohje, miten omalle koneelleen voi asentaa Mapserverin sekä OpenStreetMap.org:n Suomen paikkatietoaineistot ja selata karttaa OpenLayers-käyttöliittymäkomponentilla. Ohje on testattu Ubuntu 10.04:llä ja todennäköisesti toimii kaikissa Debian-pohjaisissa jakeluissa. Ohjeen pääasiallisena lähteenä on toiminut http://trac.osgeo.org/mapserver/wiki/RenderingOsmData
Asenna osm2pgsql (sen riippuvuudet asentaa samalla mm. PostgreSQL:n), mapserverin cgi-versio, Apache ja Subversion
sudo apt-get install osm2pgsql cgi-mapserver mapserver-bin apache2 subversion
Postgre-nimisenä käyttäjänä luo tietokanta ja asenna sinne PostGIS-laajennus
sudo -u postgres createdb osm sudo -u postgres createlang plpgsql osm sudo -u postgres psql -d osm -f /usr/share/postgresql/8.4/contrib/postgis.sql sudo -u postgres psql -d osm -f /usr/share/postgresql/8.4/contrib/spatial_ref_sys.sql sudo -u postgres psql -d osm -f /usr/share/postgresql/8.4/contrib/postgis_comments.sql
Siirry www-kansioon
cd /var/www/
Lataa finland.osm.bz2 Geofabrikin palvelimelta
wget http://download.geofabrik.de/osm/europe/finland.osm.bz2
Muunna aineisto tietokantaan siten, että RAM-muistia käytetään eninään 3 GB. Ota käyttöön myös taulukoiden etuliite on "osm" (-p osm), koska se on oletuksena jälkikäsittelyskriptissä. Optio -l säilyttää OSM datan EPSG:4326-projektiossa.
sudo -u postgres osm2pgsql -d osm -p osm -s -C 3000 -l finland.osm.bz2
Luo käyttäjätunnus, jonka jälkikäsittelyskripti olettaa löytävänsä.
sudo -u postgres psql -d osm -c "create user \"www-data\" with password 'www-data'"
Lataa mapserveriin OSM-karttatiedoston tekoon tarvittavat skriptit
svn checkout http://mapserver-utils.googlecode.com/svn/trunk/ mapserver-utils-read-only
Siirry kansioon
cd mapserver-utils-read-only/
Aja jäkikäsittely
sudo -u postgres psql -d osm -f postprocess.sql
Tarkista kartan laajuus
sudo -u postgres psql -d osm -c "SELECT extent(way) FROM osm_line"
Muokaa Makefilen kohta "cpp-4.2" vastaamaan cpp-versiotasi (Ubuntu 10.04:ssä 4.4).
nano Makefile
Lisää riville 38:
extent="19.0832097,59.3714049,31.5868545,70.0947393"
Luo karttatiedosto (skripti myös lataa Shapefilen, jota tarvitaan karttatiedoston luomiseen.)
make
Jos karttatiedoston luominen ei onnistu, tarkista että järjestelmässä on cpp ja muut käännöstyökalut asennettuna.
Valmiiseen tiedostoon osm-mapserver.map muuta riville 19:
wms_srs "epsg:4326 epsg:900913"
Nyt voit komentoriviltä tuottaa karttakuvia, esim:
http://otto.kekalainen.net/karttaohjelmat/openlayers-mapserver.html
Voit myös millä tahansa WMS-yhteensopivalla karttaohjelmalla avata kartan osoitteesta http://localhost/cgi-bin/mapserv?/var/www/mapserver-utils-read-only/osm-mapserver.map
Selainpohjainen kartta OpenLayersillä
Edellä tehtyä karttaa voi selata myös selainpohjaisesti OpenLayersillä.
Lataa OpenLayers ja sitä käyttävä esimerkkisivu
cd /var/www/ wget http://openlayers.org/download/OpenLayers-2.10.tar.gz gunzip openlayers-mapserver.zip wget http://otto.kekalainen.net/karttaohjelmat/openlayers-mapserver.html
Sitten vain selaimella osoitteeseen http://localhost/openlayers-mapserver.html niin kartan pitäisi latautua näköiseksi.
Kuvan latautuminen riippuu tietokoneen tehosta. Paljon yksityiskohtia sisältävän kuvan piirtoon voi Mapserverillä mennä yli kymmenen sekuntia.
Laattapohjainen kartta
Kartan kokonaiskäyttökokemuksen saa nopeammaksi käyttämällä ns. karttakuvalaattoja. Ubuntun pakettivarastosta löytyy suoraan tilecache-ohjelma.
sudo apt-get install tilecache
Lataa räätälöidyt asetustiedostot
cd /var/www/mapserver-utils-read-only/ wget http://otto.kekalainen.net/karttaohjelmat/Makefile wget http://otto.kekalainen.net/karttaohjelmat/tilecache.cfg
Luo karttakuvalaatat
make tiles
Luonti kestää kauan. Jos et jaksa odottaa tai kiintolevytila on loppumassa, keskeytä painamalla Ctrl+C
Jos haluat selata karttaa TMS-standardilla, lataa
wget http://otto.kekalainen.net/karttaohjelmat/openlayers-tilecache.html
ja avaa selaimessa http://localhost/openlayers-tilecache.html
Vastaavasti suoraan kiintolevyltä ja WMS-C-standardilla voi selata valmiita karttatiiliä huippunopeasti sivulla
wget http://otto.kekalainen.net/karttaohjelmat/openlayers-wms-c.html
..ja avaa selaimessa http://localhost/openlayers-wms-c.html
Paikkatietojärjestelmät ovat melko monimutkaisia, joten kannatta opiskella kunnolla kaikki käsitteet (datumit, projektiot, extend, bounding box jne) sekä selailla manuaaleja ja muita oppaita netissä. Tämä sivu on vain pikainen johdatus aiheeseen ja omat muistiinpanoni miten sain kaikki toimimaan.