Difference between revisions of "GIS Interface"

From Gcube Wiki
Jump to: navigation, search
(The library)
(Interaction with GeoServer)
Line 33: Line 33:
 
</source>
 
</source>
  
=Interaction with GeoServer=
+
=Interaction with the Spatial Data Infrastructure=
 +
 
 +
The library relies on the interfaces inside the package ''it.geosolutions.geoserver.rest'' to interact with the REST interface of a given '''GeoServer''' instance.
 +
While GET methods are offered to clients just by letting them access an instance of ''GeoServerRESTReader'' class, PUT (for creating, modifying and deleting purposes) methods are redefined and offered by the class ''GISInterface''.
 +
This lets the library coordinate the modification of both data/metadata thus granting consistency inside the '''SDI'''.
 +
 
 
==GeoServer Get Methods==
 
==GeoServer Get Methods==
==GeoServer Put Methods==
+
 
==Advanced Publishing==
+
To access and read data from a '''GeoServer''' instance, one needs to get an instance of ''it.geosolutions.geoserver.rest.GeoServerRESTReader'' in one of the following ways :
 +
 
 +
<source lang="java">
 +
//Use the most unload GeoServer from infrastructure, after refreshing cached list
 +
GISInterface.get().getGeoServerReader(ResearchMethod.MOSTUNLOAD, true);
 +
 
 +
//Get Access to a particular GeoServer instance
 +
GISInterface.get().getGeoServerReader("url","user","password");
 +
 
 +
//Get Access to a particular GeoServer instance without authentication
 +
GISInterface.get().getGeoServerReader("url");
 +
</source>
 +
 
 +
 
 +
==Writing data and metadata==

Revision as of 14:39, 18 May 2015

The GIS-Interface is a java library which exposes methods to access / modify spatial data and related metadata. The library is designed to rely on GeoNetwork and GeoServer registered in the infrastructure.

The library relies on org.gcube.spatial-data.geonetwork (see GeoNetwork library) to interact with geonetwork. Interaction with GeoServer REST interface is based on functionalities exposed by geoserver-manager, developed by GeoSolutions under MIT License.

The library

The library is a maven artifact with the following coordinates :

  <groupId>org.gcube.spatial.data</groupId>
  <artifactId>gis-interface</artifactId>

It relies on the GeoNetwork library for the interaction with GeoNetwork servers, and exploits functionalities implemented by geosolution's library :

  <groupId>it.geosolutions</groupId>
  <artifactId>geoserver-manager</artifactId>
  <version>1.5.2</version>

It basically :

  • Interacts with the infrastructure's IS to gather access information to both GeoServer and GeoNetwork instance(s)
  • Wraps geoserver-manager functionalities for accessing/modifying data on a given Geoserver instance,
  • Implements high level logic by coordinating publication of both data and metadata on the Spatial Data Infrastructure in the current scope.

The offered functionalities are accessible by instatiating the org.gcube.spatial.data.gis.GISInterface java class, via its static method

public static GISInterface get() throws Exception

Interaction with the Spatial Data Infrastructure

The library relies on the interfaces inside the package it.geosolutions.geoserver.rest to interact with the REST interface of a given GeoServer instance. While GET methods are offered to clients just by letting them access an instance of GeoServerRESTReader class, PUT (for creating, modifying and deleting purposes) methods are redefined and offered by the class GISInterface. This lets the library coordinate the modification of both data/metadata thus granting consistency inside the SDI.

GeoServer Get Methods

To access and read data from a GeoServer instance, one needs to get an instance of it.geosolutions.geoserver.rest.GeoServerRESTReader in one of the following ways :

//Use the most unload GeoServer from infrastructure, after refreshing cached list
GISInterface.get().getGeoServerReader(ResearchMethod.MOSTUNLOAD, true);
 
//Get Access to a particular GeoServer instance
GISInterface.get().getGeoServerReader("url","user","password");
 
//Get Access to a particular GeoServer instance without authentication
GISInterface.get().getGeoServerReader("url");


Writing data and metadata