From 86353ede48230c1b2d759d0fb5afdfe2b7b47161 Mon Sep 17 00:00:00 2001 From: "francesco.mangiacrapa" Date: Thu, 29 Oct 2020 17:57:29 +0100 Subject: [PATCH] reading new properties --- .../GeoportalDataViewerServiceImpl.java | 4 ++-- .../server/gis/FeatureParser.java | 21 ++++++++++++------- .../shared/FeatureRow.java | 11 +++++++++- 3 files changed, 25 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java index 90aa703..ca1415d 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/GeoportalDataViewerServiceImpl.java @@ -84,9 +84,9 @@ public class GeoportalDataViewerServiceImpl extends RemoteServiceServlet impleme * @see org.gcube.portlets.user.gisviewer.client.GisViewerService#getDataResult(java.util.List, java.lang.String, int) */ @Override - public List getDataResult(List layerItems, String mapSrsName, BoundsMap mapBBOX, int maxWFSFeature, double zoomLevel) { + public List getDataResult(List layerItems, String mapSrsName, BoundsMap selectBBOX, int maxWFSFeature, double zoomLevel) { LOG.info("getDataResult called"); - List result = FeatureParser.getDataResults(layerItems, mapSrsName, mapBBOX, maxWFSFeature); + List result = FeatureParser.getDataResults(layerItems, mapSrsName, selectBBOX, maxWFSFeature); return result; } diff --git a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/gis/FeatureParser.java b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/gis/FeatureParser.java index 79910c1..222404b 100644 --- a/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/gis/FeatureParser.java +++ b/src/main/java/org/gcube/portlets/user/geoportaldataviewer/server/gis/FeatureParser.java @@ -48,11 +48,11 @@ public class FeatureParser { * * @param layerItems the layer items * @param mapSrsName the map srs name - * @param mapBBOX the map BBOX + * @param selectBBOX the select BBOX * @param maxWFSFeature the max WFS feature * @return the data results */ - public static List getDataResults(List layerItems, String mapSrsName, BoundsMap mapBBOX, int maxWFSFeature) { + public static List getDataResults(List layerItems, String mapSrsName, BoundsMap selectBBOX, int maxWFSFeature) { if(maxWFSFeature<0) { maxWFSFeature = GeoportalDataViewerConstants.MAX_WFS_FEATURES; @@ -61,7 +61,7 @@ public class FeatureParser { List listGeonaDO = new ArrayList(); //IF WFS IS AVAILABLE USE WFS REQUEST OTHERWHISE TRY TO USE WPS SERVICE for (LayerItem layerItem : layerItems){ - List rows = getWFSFeatureProperties(layerItem, mapSrsName, mapBBOX, maxWFSFeature); + List rows = getWFSFeatureProperties(layerItem, mapSrsName, selectBBOX, maxWFSFeature); GeoNaDataObject gdo = new GeoNaDataObject(); gdo.setLayerItem(layerItem); for (FeatureRow featureRow : rows) { @@ -71,24 +71,24 @@ public class FeatureParser { return null; } - + /** * Gets the WFS feature properties. * * @param layerItem the layer item * @param mapSrsName the map srs name - * @param mapBBOX the map BBOX + * @param selectBBOX the select BBOX * @param maxWFSFeature the max WFS feature * @return the WFS feature properties */ @SuppressWarnings("unchecked") - private static List getWFSFeatureProperties(LayerItem layerItem, String mapSrsName, BoundsMap mapBBOX, int maxWFSFeature) { + private static List getWFSFeatureProperties(LayerItem layerItem, String mapSrsName, BoundsMap selectBBOX, int maxWFSFeature) { - LOG.info("getWFSFeatureProperties for layerItem: "+layerItem.getName() +" in the "+mapBBOX); + LOG.info("getWFSFeatureProperties for layerItem: "+layerItem.getName() +" in the "+selectBBOX); InputStream is = null; List listFeaturesRow = new ArrayList(); try { - String url = GisMakers.buildWFSFeatureQuery(layerItem, mapSrsName, mapBBOX, maxWFSFeature, GisMakers.JSON); + String url = GisMakers.buildWFSFeatureQuery(layerItem, mapSrsName, selectBBOX, maxWFSFeature, GisMakers.JSON); String cqlFilterValue = URLParserUtil.extractValueOfParameterFromURL(GisMakers.CQL_FILTER_PARAMETER, url); LOG.info("Found CQL filter value into query string: "+cqlFilterValue); @@ -116,6 +116,11 @@ public class FeatureParser { LOG.info("No features detected in the response, returning empty list"); return listFeaturesRow; } + + JSONObject crs = json.getJSONObject("crs"); + JSONObject crsProp = crs.getJSONObject("properties"); + + LOG.info("Features are: "+features.length()); for (int i=0; i> mapProperties; private FeatureGeometry geometry; + + private String crsName; public FeatureRow() { } @@ -43,7 +45,14 @@ public class FeatureRow implements Serializable { public void setMapProperties(Map> mapProperties) { this.mapProperties = mapProperties; } - + + public String getCrsName() { + return crsName; + } + + public void setCrsName(String crsName) { + this.crsName = crsName; + } public FeatureGeometry getGeometry() { return geometry;