📄 wfsquerycriteria.java
字号:
package com.esri.solutions.jitk.web.wfs.data.query;
import java.util.List;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import com.esri.adf.web.data.GISResource;
import com.esri.adf.web.data.WebLayerInfo;
import com.esri.adf.web.data.geometry.WebSpatialReference;
import com.esri.adf.web.data.query.QueryFunctionality;
import com.esri.solutions.jitk.datasources.ogc.wfs.CoordinateReferenceSystem;
import com.esri.solutions.jitk.datasources.ogc.wfs.FeatureTypeDescription;
import com.esri.solutions.jitk.datasources.ogc.wfs.IWFSClient;
import com.esri.solutions.jitk.datasources.ogc.wfs.WFSClient;
import com.esri.solutions.jitk.web.wfs.data.WFSMapResource;
import com.esri.solutions.jitk.web.wfs.data.WFSWebLayerInfo;
public abstract class WFSQueryCriteria {
private static final Logger _logger = LogManager.getLogger(WFSQueryCriteria.class);
public WFSQueryCriteria() {
}
protected WFSWebLayerInfo getWFSWeblayerInfo(QueryFunctionality qf, List<? extends WebLayerInfo> layerList) {
WFSWebLayerInfo layerInfo = null;
if (layerList == null) {
_logger.error("WebLayerInfo list is null, aborting query");
return layerInfo;
}
if (layerList.size() != 1) {
_logger.warn("WebLayerInfo list has " + layerList.size() + " layers. Using only first layer.");
_logger.warn("WFSQueryFunctionality only supports querying one layer at a time");
}
int iLayerId = layerList.get(0).getId();
_logger.debug("Layer ID = " + iLayerId);
GISResource gisResource = qf.getResource();
if (gisResource instanceof WFSMapResource) {
WFSMapResource wfsResource = (WFSMapResource) gisResource;
layerInfo = wfsResource.getLayerInfoByIndex(iLayerId);
} else {
_logger.error("GISResource not a WfsMapResource, aborting query");
}
return layerInfo;
}
protected CoordinateReferenceSystem getCrs(WebSpatialReference wsr, FeatureTypeDescription ftd) {
WebSpatialReference spatRef = wsr;
String mapSpatRef = String.valueOf(spatRef.getId());
_logger.debug("Maps spatial reference def string " + spatRef.getDefinitionString());
_logger.debug("Maps spatial reference ID is " + mapSpatRef);
int spatRefId = spatRef.getId();
if (spatRefId <= -1) {
spatRefId = WebSpatialReference.getWebSpatialReferenceId(spatRef.getDefinitionString());
}
_logger.debug("Map calculated reference ID is " + spatRefId);
CoordinateReferenceSystem crs = ftd.getOtherSrsFromCode(String.valueOf(spatRefId));
if (crs == null) {
_logger.error("WFS service does not support spatial reference ID " + spatRefId);
} else {
_logger.debug("WFS maps ID " + spatRefId + " to " + crs.getURNFormat());
}
return crs;
}
protected IWFSClient getWFSClient(GISResource gisResource) {
// Get WFS end-point URL
WFSMapResource mapResource = (WFSMapResource) gisResource;
String url = mapResource.getEndPointURL();
IWFSClient wfs = new WFSClient(url);
return wfs;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -