Worskhop Leicester 2010
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Worskhop Leicester 2010

on

  • 1,519 views

Databases and Web Mapping the Open Source Way

Databases and Web Mapping the Open Source Way

Statistics

Views

Total Views
1,519
Views on SlideShare
1,519
Embed Views
0

Actions

Likes
0
Downloads
10
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Worskhop Leicester 2010 Presentation Transcript

  • 1. Beyond Google Maps and Mashups
  • 2. Practicalities ●Download: www.archaeogeek.com/downloads/leics2010.zip Save to /home/user and extract ● /home/user/leics2010 folder should then contain: ● shape_files (folder) demo.map mapserver.html baselayers.html leicester_2010_notes.pdf
  • 3. Installing Quantum GIS plugins Needed Plugins: Mapserver Export, PostGIS manager, SPIT
  • 4. Databases
  • 5. Databases + www.postgresql.org postgis.refractions.net ● Server-based database (not like access) ● Data is entirely separate from user interface ● Inside the database, data stored in schemas for finer control
  • 6. How to connect to a database ● HOST: localhost, 192.168.3.40, myserver.com ● DATABASE: ??? (your choice) ● USERNAME: user ● PASSWORD: user ● PORT: 5432 (default)
  • 7. Getting spatial data into PostgreSQL ● OGR2OGR (command line) ● SHP2PGSQL (command line) ● SPIT plugin for Quantum GIS ● Essential Parameters: host, username, password, dbname, port (as before) ● Additionally: name and location of shapefile, name of table in database, coordinate system of data
  • 8. Loading data with SPIT Create new database with pgadmin3 and connect to it with SPIT in QGIS
  • 9. SPIT (continued) Make “DB Relation Name” all lower case!!!
  • 10. Database house-keeping ● Each table should have a primary key ● Each spatial table should be recorded in the geometry_columns table ● Each spatial table should have a spatial index CREATE INDEX yourtable_idx ON yourtable USING GIST(geometry_column);
  • 11. Querying data ● SQL: Structured Query Language SELECT some comma de-limited columns FROM your_table WHERE some condition is met; ● Use PSQL from command line, PgAdmin3, or PostgreSQL Manager/SQL Editor ● SQL is case-sensitive for table and column names, and keywords are usually in capitals
  • 12. Querying data ● Display on the map using CREATE VIEW AS: CREATE VIEW viewname AS SELECT * FROM united_kingdom_counties WHERE... ● Add to QGIS using Add Layer/Add PostGIS layer
  • 13. Spatial Querying ● Find out which county a point is in: SELECT “PROV3NAME” FROM united_kingdom_counties WHERE st_within(geomfromtext('point(-1.4 52.6)', 4326), the_geom); ● Find out the spatial extent of your data: SELECT st_extent(the_geom) FROM united_kingdom_counties;
  • 14. Map Servers
  • 15. Types of Map Server ● cgi program on a web server. Configuration via text files ● java-based program. Configuration via web interface
  • 16. The Map File MAP NAME "sample" STATUS ON SIZE 600 400 EXTENT -180 -90 180 90 UNITS DD SHAPEPATH "../data" IMAGECOLOR 255 255 255 WEB IMAGEPATH "/ms4w/tmp/ms_tmp/" IMAGEURL "/ms_tmp/" END LAYER NAME 'global-raster' TYPE RASTER STATUS DEFAULT DATA bluemarble.gif END END
  • 17. Checking and Viewing a map file ● SHP2IMG at the command line shp2img -m /home/user/leics2010/demo.map -o /home/user/demo.png ● With a browser http://localhost.com/cgi- bin/mapserv? map=/home/user/leics2010/demo.map &mode=map
  • 18. Adding new layers to a mapfile LAYER NAME "your layer" STATUS DEFAULT TYPE POLYGON DATA "yourshapefile.shp" CLASS NAME "your name for this symbology" STYLE SYMBOL 0 OUTLINECOLOR 0 0 0 COLOR 207 150 123 END END END
  • 19. Connecting to PostgreSQL from Mapserver LAYER NAME "UK Counties" STATUS DEFAULT TYPE POLYGON CONNECTIONTYPE POSTGIS CONNECTION "host=localhost port=5432 dbname=osgis2010 user=user password=user" DATA "the_geom from united_kingdom_counties" CLASS … END END
  • 20. Displaying single layers ● Set the Layer status to “ON” rather than “DEFAULT” ● Specify the layers as part of the URL: http://localhost/cgi- bin/mapserv? map=/home/user/leics2010/demo. map&layer=counties
  • 21. Web Mapping
  • 22. Web Mapping: Practicalities ● Make the web folder writeable sudo chown -R user /var/www sudo chmod -R 755 /var/www ● If asked for a password, it's user
  • 23. Structure of a web page <html> <head> <title> My Home Page </title> </head> <body> HELLO WORLD! </body> </html>
  • 24. Scripting ● SERVER-SIDE: php, asp <?php phpinfo(); ?> ● CLIENT-SIDE: javascript
  • 25. Solving Problems using Firefox
  • 26. OpenLayers
  • 27. OpenLayers page structure <html> <head> <script src="..lib/OpenLayers.js"></script> <script type="text/javascript"> var map, mylayer; function init() { map = new OpenLayers.Map('map'); mylayer = new OpenLayers.Layer.MapServer( "World Map", "http://localhost/cgi-bin/mapserv.exe", {map: 'C:/world_mapfile.map'}); map.addLayer(mylayer); map.zoomToMaxExtent(); } </script> </head> <body onload="init()"> <div id="map" style="width: 600px; height: 300px"></div> </body> </html>
  • 28. Adding Controls Scale Bars, Permalink and Mouse Position Layer Switcher and Overview Map
  • 29. Base Mapping ● Can use base data from Google, Microsoft, Yahoo, Openstreetmap, etc ● Specify base layer (not always necessary) {'isBaseLayer': true} ● Overlay needs to be transparent {'transparent':true, 'format': png} ● Change addlayers directive map.addLayers([layer1,layer2]);
  • 30. Beyond OpenLayers •MapGuide Open Source http://mapguide.osgeo.org •Mapfish http://mapfish.org/ •Mapchat http://mapchat.ca/ •Featureserver http://featureserver.org/
  • 31. And Finally... Have fun!!! This work is licenced under the Creative Commons Attribution-Share Alike 2.0 UK: England & Wales License. To view a copy of this licence, visit http://creativecommons.org/licenses/by-sa/2.0/uk/ or send a letter to Creative Commons, 171 Second Street, Suite 300, San Francisco, California 94105, USA. Jo Cook OA Digital http://oadigital.net j.cook@oadigital.net +44 (0)1524 880212