Difference between revisions of "GIS Interface"

From Gcube Wiki
Jump to: navigation, search
(Read GeoNetwork metadata)
(GeoNetwork module)
Line 20: Line 20:
 
   <groupId>org.gcube.spatial.data</groupId>
 
   <groupId>org.gcube.spatial.data</groupId>
 
   <artifactId>geonetwork</artifactId>
 
   <artifactId>geonetwork</artifactId>
   <version>1.0.0-SNAPSHOT</version>
+
   <version>...</version>
 
</dependency>
 
</dependency>
 
</source>
 
</source>

Revision as of 18:40, 18 March 2013

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 implementation is based on functionalities exposed by geoserver-manager and geonetwork-manager. These libraries are both developped by GeoSolutions under MIT License.

Modules

The library is distributed in 2 separate modules :

  • org.gcube.spatial-data.geonetwork
exposes functionalities to access / write metadata on GeoNetwork. Most applications which need basic functionalities like search and access to metadata should rely only on this component.
  • org.gcube.spatial-data.gis-interface
used to manage spatial data to/from GeoServer instances. Applications which generate/publish spatial data in the infrastructure should exploit its functionalities.

GeoNetwork module

In order to use org.gcube.spatial-data.geonetwork in your Maven project, you need to add this dependecy in your pom.xml file

<dependency>
  <groupId>org.gcube.spatial.data</groupId>
  <artifactId>geonetwork</artifactId>
  <version>...</version>
</dependency>

please, remind to follow guidelines declared in Developing gCube Maven Components.

ISO 19115:2003 metadata compliance

Metadata objects used by the libraries implement GeoAPI interfaces, which are fully compliant to ISO 19115:2003/19139. Current implementation is based on GeoToolkit Metadata module.

Read GeoNetwork metadata

Read Methods exposed by the library are the ones declared by the interface org.gcube.spatial.data.geonetwork.GeoNetworkReader.

Here are some snippets

Get Instance

Please note that the library uses the current scope in order to determine which geonetwork it should rely on.

ScopeProvider.instance.set(...);
GeoNetworkReader gn=GeoNetwork.get();

Query for metadata

// Form query object
GNSearchRequest req=new GNSearchRequest();
req.addParam(GNSearchRequest.Param.any, "aquamaps");
 
// Get Response Object
GNSearchResponse resp=gn.query(req);
 
if(resp.getCount()!=0) // Some metadata found
 for(GNSearchResponse.GNMetadata metadata:resp){
   long id=metadata.getId(); // id to the actual metadata
   Metadata meta=gn.getById(metadata.getUUID());
   System.out.println(meta);
 }

Write GeoNetwork metadata

GIS-Interface module

Accessing GeoServer

GeoServer Get Methods

GeoServer Put Methods