jj0hns0n / geonode

GeoNode is an open source platform that facilitates the creation, sharing, and collaborative use of geospatial data.
http://geonode.org/
GNU General Public License v3.0
3 stars 0 forks source link

Initial Support for Remote Services #15

Closed jj0hns0n closed 10 years ago

jj0hns0n commented 10 years ago

What does this PR do? Adds an initial implementation that supports remote services in GeoNode. Support for WMS, WFS, CSW, ArcGIS REST, OpenGeoPortal and Harvard Geospatial Library are provided. Additionally, it provides a basic framework for further work in this direction.

Background Support for configuring and using Remote Services in a GeoNode instance has long been requested by GeoNode users and administratrors. This PR implements the basic functionality to make this possible. Initial support for the most common OGC services as well as ArcGIS REST and other specific services is provided.

The initial implementation of this work was done by myself (@jj0hns0n) as part of the Australia New Zealand Spatial Marketplace (ANZSM) demonstrator project, and was picked up by Matt Bertrand (@mbertrand) and is in use in the WorldMap project. Further work has been done recently to make it work with GeoNode 2.0.

'Indexed' WMS layers allow for layers in a remote WMS to be indexed and Layer records created for each of the remote layers. The Map Client makes requests directly against the remote service.

'Cascaded' WMS layers are configured in both the local GeoNode database and the catalog of the GeoServer paired with the GeoNode. This method is useful when the remote server does not support 900913 projection as GeoServer will do the reprojection on the fly. Additionally, it is possible to use the local geoserver to do caching with GeoWebCache to improve performance or handle for remote servers being offline.

The CSW support is somewhat rudimentary and only supports looking for WMS layers in the records of the remote WMS that match a specific set of conditions. @tomkralidis is planning to pick this work up and improve on it.

Additionally, Basic support for an asyncrhonous queue is added and the geonode will need to be configured with kombu support if this functionality is desired. @mbertrand can add more docs about his setup.

Issues https://github.com/GeoNode/geonode/issues/1330 https://github.com/GeoNode/geonode/issues/770 https://github.com/GeoNode/geonode/issues/996 https://github.com/GeoNode/geonode/issues/268 https://github.com/GeoNode/geonode/issues/188 https://github.com/GeoNode/geonode/issues/188

Screenshots Configure a new Service register_service_-_example com

Service Layers as GeoNode Layers welcome__-_example com

Service Information Page welcome__-_example com

TODO