410 likes | 617 Vues
Internet-enabled GIS Using Free and Open Source Tools. John Reiser jreiser@njgeo.org. What exactly is Open Source?. Freedom to allow others to adapt and reuse while retaining some rights over code Community-driven software Precursor to the Open Content movement
E N D
Internet-enabled GIS Using Free and Open Source Tools John Reiser jreiser@njgeo.org
What exactly is Open Source? Freedom to allow others to adapt and reuse while retaining some rights over code Community-driven software Precursor to the Open Content movement Eric Raymond's "The Cathedral and the Bazaar"
The Cathedral and the Bazaar "I believed that the most important software needed to be built like cathedrals, carefully crafted by individual wizards or small bands of mages working in splendid isolation, with no beta to be released before its time." "The Linux community seemed to resemble a great babbling bazaar of differing agendas and approaches out of which a coherent and stable system could seemingly emerge only by a succession of miracles."
No Miracles Necessary • Open source does work • Thousands of software packages are available under open source licenses • Operating systems, development tools, web browsers, web and file servers, communications tools, graphic design applications, etc… • All with no upfront monetary cost • How does GIS fit in?
Open Source GIS Software that allows us to share our data with everyone using open standards Software that we can modify and improve GIS data released under an open license GIS data updated and enriched by community input and participation
Open Source GIS • Developing an open source GIS has many benefits • Low-cost of entry • Adaptable and extendable • Entry into the greater open source community • "Open Source doesn't come with support" is no longer a valid excuse • Several companies now provide support to OS GIS packages
Sharing Data: Accessibility • We can easily share data now • FTP • ZIP files posted to the web • Helps GIS users, but outsiders are left in the dark • Inviting, easy to use map interfaces are the new way to share
Getting the parts together • Protocols • Web Map Service • Web Feature Service • Keyhole Markup Language • Server side tech • MapServer and/or GeoServer • Tilecache • Client side • OpenLayers • Google Maps and Virtual Earth (free but not OS)
Configuration of a Web Map MapServer Server Client GIS Data GeoServer TileCache OpenLayers Map Cache Other WMS
Web Map Service WMS is a protocol for requesting rendered map tiles from a GIS server Allows access to the attribute information via XML REST-ful protocol – necessary info within the URL
Web Feature Service WFS allows for retrieval of GIS features and properties from a remote server WFS also allows updating GIS data on a remote server Returns XML data
KML Once a "closed" language, Google pushed for its adoption as an open standard KML is a subset of XML and related to GML KML stores vector data along with symbology KML can act as a wrapper for WMS services
Choosing a Server • MapServer and GeoServer fill similar roles, but there are some things to consider in choosing: • Hosting environment • Focus on rendering data or manipulating data • Familiarity with command-line interface • Patience
MapServer • MapServer is robust software • launched mid-1990s, currently version 5.4.0 • MapServer is lightweight • Runs in either Apache httpd or IIS • MapServer supports many file formats • Easy to install • More difficult to configure
GeoServer • GeoServer is also robust software • launched 2001, currently version 1.7.4 • Written in Java, runs in Apache Tomcat • Complicated to install in shared hosting environment • Easy to configure
Tile-based Mapping Common complaint of ArcIMS is that the service is painfully slow The map extent is rendered from GIS data for every request Caching pre-rendered maps allows the server to send a static file without GIS processing
Tile-based Mapping Enforce a set of scales at which the map is rendered Break each map scale into a grid of rendered map tiles Map tiles can be stored on disk after rendering Removes the need to render from data for each map request TileCache can manage the rendered tile cache
TileCache TileCache sits between the client and server Client requests map tiles (using WMS) TileCache checks the stored tiles If it exists, it returns the rendered tile to client If tile is missing, it passes the request to a GIS server Once it receives the rendered tile, TileCache stores the tile and sends it to the client
TileCache Written in Python, with extensions for server environment Can cache tiles directly from MapServer or any WMS-capable GIS server Can reduce the strain on infrastructure and lower costs
OpenLayers JavaScript library for implementing a "Google Maps" style interface Allows interactive mapping within most modern web browsers Originally from the same company as TileCache, now a project of OSGeo Supports both WMS and WFS Supports tiles from Google Maps, Virtual Earth Highly customizable
Freedom to Mix and Match • You could develop your interactive map using entirely open source software • "OpenGeo Architecture" • You can mix and match parts as necessary • ArcGIS & OpenLayers • MapServer & Google Maps/Google Earth • Open standards give you the freedom of choice
Open Source Community The strength of OS software comes from the community "Given enough eyeballs, all bugs are shallow." Propose or contribute new functionality Community is not limited to software
Collaboration • Data can benefit from collaboration • Parcels from a surveyor and tax assessor • Free alternatives to high-cost data • OpenStreetMap • POI databases become truly valuable once released to the crowd to update • Just beginning to explore the value in Volunteered Geographic Information
Open Source Community Equality, transparency and collaboration A community of passionate individuals Use the software and become part of something greater Consider sharing your data with the community
Resources • Open Source Initiative • http://www.opensource.org/ • Open Source Geospatial Foundation (OSGeo) • http://www.osgeo.org/ • Source images for "Cathedral" & "Bazaar" are GNU licensed images from Wikimedia Commons • http://commons.wikimedia.org/wiki/File:Catedral_Metropolitana_de_Sao_Paulo_1_Brasil.jpg • http://commons.wikimedia.org/wiki/File:Bd_bazaar.jpg • Full text of "The Cathedral and the Bazaar" is available online: • http://www.catb.org/~esr/writings/cathedral-bazaar/ • Web Mapping Illustrated is a great resource for developing your own web maps • http://oreilly.com/catalog/9780596008659/ • Whitepaper on "OpenGeo" Architecture from GeoServer • http://opengeo.org/publications/opengeo-architecture/ (published April 2009)