GeoServer is the reference implementation of the Open Geospatial Consortium (OGC) Web Feature Service (WFS) and Web Coverage Service (WCS) standards, as well as a high performance certified compliant Web Map Service (WMS).
GeoServer is an open source software server written in Java that allows users to share and edit geospatial data. Designed for interoperability, it publishes data from any major spatial data source using open standards.
Being a community-driven project, GeoServer is developed, tested, and supported by a diverse group of individuals and organizations from around the world.
GeoServer is the reference implementation of the Open Geospatial Consortium (OGC) Web Feature Service (WFS) and Web Coverage Service (WCS) standards, as well as a high performance certified compliant Web Map Service (WMS). GeoServer forms a core component of the Geospatial Web.
(http://geoserver.org/display/GEOS/Welcome as it is on Jan 29th, 2014)
A common use for geoserver is with two other componnets: Geowebcache and Openlayers. The first is an actually embed feature in Geoserver default installation. It avoids processing storing images that were generated by Geoserver once. The access to this cache is transparent to the user, using the same endpoint. Openlayers is a javascript library that handles the complexity of assembling the images given by geoserver into a usable map.
More information can be found in the following links:
Openlayers:
- http://openlayers.org/
- http://wiki.osgeo.org/wiki/Openlayers
- http://geoserver.geo-solutions.it/edu/en/use_ol/ol_map.html (creating a simple application with OL and Geoserver)
Geowebcache:
- http://docs.geoserver.org/latest/en/user/geowebcache/index.html
- http://docs.geoserver.org/latest/en/user/geowebcache/using.html
Geoserver is able to abstract many complex operations with geodesic data and can serve the application with many representations of it. The most used are the map images, but other formats like KML (used by Google Earth), JSON and XML are also available, making possible to offer a rich app to the user.
It will also allow the administrator to style the map in many ways using defined styles for the layers, described in the format called SLD. Here you have how to:
- Compose styles (this is a very rich site): http://docs.geoserver.org/stable/en/user/styling/sld-cookbook/
- Import them into geoserver and many other operations: http://docs.geoserver.org/latest/en/user/styling/index.html
- Use GeoStyler Extension (style editor with a graphical style editor): https://docs.geoserver.org/latest/en/user/community/geostyler/index.html
The input formats will mostly be the Shapefiles or a data connection to the database that contains geospacial data, such as Postgres using the Postgis extension.
A brief about the supported formats: http://docs.geoserver.org/latest/en/user/community/importer/formats.html?highlight=shapefile
Importing a shapefile: http://docs.geoserver.org/latest/en/user/gettingstarted/shapefile-quickstart/index.html
Connecting to a Postgres/postgis database: http://docs.geoserver.org/latest/en/user/gettingstarted/postgis-quickstart/index.html
Shapefiles (a format described by ESRI) definition and other useful information:
- http://www.esri.com/library/whitepapers/pdfs/shapefile.pdf
- http://www.esri.com/news/arcuser/0401/topo.html
Postgres and Postgis information:
Geoserver uses the concept of endpoint to serve the information. The parameters are received via GET, making simple request powerfull tools of abstraction. An example with openlayers can be found here:
http://openlayers.org/dev/examples/getfeatureinfo-control.html
The endpoint, in the example is the following:
var political = new OpenLayers.Layer.WMS("State Boundaries",
"http://demo.opengeo.org/geoserver/wms",
{
'layers': 'topp:tasmania_state_boundaries',
transparent: true,
format: 'image/gif'
},
{
isBaseLayer: true
}
);
where - "http://demo.opengeo.org/geoserver/wms" is the endpoint for wms serving - 'layers': 'topp:tasmania_state_boundaries' - we want the tasmania_state_boundaries layer from top workspace - transparent: true informs the server to leave transparent the regions where there is no information. Otherwise they will be white. - format: 'image/gif' - The format of the images we want.
It's that simple to access a black hole of geo information that, otherwise, would require too much time to do. Too much time.