GIS Interface
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.
Contents
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); }