geo-utility/src/test/java/org/gcube/spatial/data/geoutility/GeoJUnitTest.java

138 lines
6.1 KiB
Java

/**
*
*/
package org.gcube.spatial.data.geoutility;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
import org.gcube.spatial.data.geoutility.shared.wfs.FeatureRow;
import org.gcube.spatial.data.geoutility.shared.wfs.WFSParameter;
import org.gcube.spatial.data.geoutility.wfs.FeatureParser;
import org.gcube.spatial.data.geoutility.wfs.WFSQueryBuilder;
import org.gcube.spatial.data.geoutility.wms.WmsUrlValidator;
import org.junit.Test;
/**
* The Class GeoJUnitTest.
*
* @author Francesco Mangiacrapa francesco.mangiacrapa@isti.cnr.it Jan 22, 2016
*/
public class GeoJUnitTest {
/**
* Test get styles.
*/
//@Test
public void testGetStyles() {
// String wmsRequest = "http://repoigg.services.iit.cnr.it:8080/geoserver/IGG/ows?service=wms&version=1.1.0&request=GetMap&layers==IGG:area_temp_1000&width=676&height=330&srs=EPSG:4326&crs=EPSG:4326&format=application/openlayers&bbox=-85.5,-180.0,90.0,180.0";
// String wmsRequest = "http://thredds-d-d4s.d4science.org/thredds/wms/public/netcdf/test20.nc?service=wms&version=1.3.0&request=GetMap&layers=analyzed_field&styles=&width=640&height=480&srs=EPSG:4326&CRS=EPSG:4326&format=image/png&COLORSCALERANGE=auto&bbox=-85.0,-180.0,85.0,180.0";
// String wmsRequest = "http://www.fao.org/figis/geoserver/species?SERVICE=WMS&BBOX=-176.0,-90.0,180.0,90&styles=&layers=layerName&FORMAT=image/gif";
String wmsRequest = "http://geoserver-dev.d4science-ii.research-infrastructures.eu/geoserver/wms?CRS=EPSG:4326&BBOX=-85.5,-180.0,90.0,180.0&VERSION=1.1.0&FORMAT=application/openlayers&SERVICE=wms&HEIGHT=330&LAYERS=aquamaps:lsoleasolea20130716162322254cest&REQUEST=GetMap&STYLES=Species_prob&SRS=EPSG:4326&WIDTH=676";
GeoNcWMSMetadataUtility geo;
try {
geo = new GeoNcWMSMetadataUtility(wmsRequest);
System.out.println("Returned styles: " + geo.loadStyles());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* Test get styles.
*/
// @Test
public void testLoadZAxis() {
// String wmsRequest = "http://repoigg.services.iit.cnr.it:8080/geoserver/IGG/ows?service=wms&version=1.1.0&request=GetMap&layers==IGG:area_temp_1000&width=676&height=330&srs=EPSG:4326&crs=EPSG:4326&format=application/openlayers&bbox=-85.5,-180.0,90.0,180.0";
String wmsRequest = "http://thredds-d-d4s.d4science.org/thredds/wms/public/netcdf/test20.nc?service=wms&version=1.3.0&request=GetMap&layers=analyzed_field&styles=&width=640&height=480&srs=EPSG:4326&CRS=EPSG:4326&format=image/png&COLORSCALERANGE=auto&bbox=-85.0,-180.0,85.0,180.0";
// String wmsRequest = "http://www.fao.org/figis/geoserver/species?SERVICE=WMS&BBOX=-176.0,-90.0,180.0,90&styles=&layers=layerName&FORMAT=image/gif";
GeoNcWMSMetadataUtility geo;
try {
geo = new GeoNcWMSMetadataUtility(wmsRequest);
System.out.println("Returned Z-Axis: " + geo.loadZAxis());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* Test wms url validator.
*/
// @Test
public void testWMSUrlValidator() {
String wmsRequest = "http://geoserver-dev.d4science-ii.research-infrastructures.eu/geoserver/wms?CRS=EPSG:4326&BBOX=-85.5,-180.0,90.0,180.0&VERSION=1.1.0&FORMAT=application/openlayers&SERVICE=wms&HEIGHT=330&LAYERS=aquamaps:lsoleasolea20130716162322254cest&REQUEST=GetMap&STYLES=Species_prob&SRS=EPSG:4326&WIDTH=676";
// String wmsRequest = "http://thredds-d-d4s.d4science.org/thredds/wms/public/netcdf/test20.nc?service=wms&version=1.3.0&request=GetMap&layers=analyzed_field&styles=&width=640&height=480&srs=EPSG:4326&CRS=EPSG:4326&format=image/png&COLORSCALERANGE=auto&bbox=-85.0,-180.0,85.0,180.0";
WmsUrlValidator wms;
try {
wms = new WmsUrlValidator(wmsRequest);
System.out.println("Returned wms: " + wms.toString());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
//@Test
public void testWFSRequest() {
String wfsEndPoint = "https://geoserver1.dev.d4science.org/geoserver/devvre/wfs";
try {
//REGIONI
String layerName = "devvre:Reg01012021_g_WGS84";
List<String> propertyName = new ArrayList<String>();
propertyName.add("devvre:COD_REG");
propertyName.add("devvre:DEN_REG");
//Querying list of Regioni
WFSQueryBuilder queryBuilder = new WFSQueryBuilder();
queryBuilder.addParameter(WFSParameter.SERVICE, WFSParameter.SERVICE.getValue());
queryBuilder.addParameter(WFSParameter.VERSION, "2.0.0");
queryBuilder.addParameter(WFSParameter.REQUEST, "GetFeature");
queryBuilder.addParameter(WFSParameter.TYPENAME, layerName);
queryBuilder.addParameter(WFSParameter.OUTPUTFORMAT, WFSParameter.OUTPUTFORMAT.getValue());
queryBuilder.addParameter(WFSParameter.PROPERTYNAME, propertyName, ",");
FeatureParser fp = new FeatureParser();
List<FeatureRow> rows = fp.getWFSFeatures(wfsEndPoint, queryBuilder);
System.out.println("Regioni: ");
for (FeatureRow featureRow : rows) {
System.out.println(featureRow);
}
//PROVINCE
layerName = "devvre:ProvCM01012021_g_WGS84";
propertyName = new ArrayList<String>();
propertyName.add("devvre:COD_REG");
propertyName.add("devvre:COD_PROV");
propertyName.add("devvre:DEN_PROV");
propertyName.add("devvre:DEN_CM"); //è pieno per i capoluoghi di provincia
queryBuilder = new WFSQueryBuilder();
queryBuilder.addParameter(WFSParameter.SERVICE, WFSParameter.SERVICE.getValue());
queryBuilder.addParameter(WFSParameter.VERSION, "2.0.0");
queryBuilder.addParameter(WFSParameter.REQUEST, "GetFeature");
queryBuilder.addParameter(WFSParameter.TYPENAME, layerName);
queryBuilder.addParameter(WFSParameter.OUTPUTFORMAT, WFSParameter.OUTPUTFORMAT.getValue());
queryBuilder.addParameter(WFSParameter.PROPERTYNAME, propertyName, ",");
queryBuilder.addParameter(WFSParameter.CQL_FILTER, URLEncoder.encode("devvre:COD_REG=9", "UTF-8"));
fp = new FeatureParser();
rows = fp.getWFSFeatures(wfsEndPoint, queryBuilder);
System.out.println("PROVINCE: ");
for (FeatureRow featureRow : rows) {
System.out.println(featureRow);
}
System.out.println(queryBuilder.getQuery());
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}