📄 wfsresultsbuilder.java
字号:
package com.esri.solutions.jitk.web.wfs.data.query;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.LogManager;
import org.apache.log4j.Logger;
import com.esri.adf.web.data.WebLayerInfo;
import com.esri.adf.web.data.geometry.GeometryUtil;
import com.esri.adf.web.data.geometry.WebExtent;
import com.esri.adf.web.data.geometry.WebGeometry;
import com.esri.adf.web.data.query.QueryResult;
import com.esri.adf.web.data.query.WebQuery;
import com.esri.solutions.jitk.data.gml.GMLGeometryConverterFactory;
import com.esri.solutions.jitk.data.gml.IGMLGeometryConverter;
import com.esri.solutions.jitk.datasources.ogc.gml.IGMLGeometry;
import com.esri.solutions.jitk.datasources.ogc.wfs.FeatureCollection;
import com.esri.solutions.jitk.datasources.ogc.wfs.FeatureMember;
public class WFSResultsBuilder {
private static final Logger _logger = LogManager.getLogger(WFSResultsBuilder.class);
public WFSResultsBuilder() {
}
public List<QueryResult> buildQueryResults(WebQuery query, WebLayerInfo layerInfo, FeatureCollection fc) throws Exception {
// Use full extent as result extent
WebExtent ext = query.getWebContext().getWebMap().getFullExtent();
return buildQueryResults(query, ext, layerInfo, fc);
}
public List<QueryResult> buildQueryResults(WebQuery query, WebExtent ext, WebLayerInfo layerInfo, FeatureCollection fc) throws Exception {
List<QueryResult> results = new ArrayList<QueryResult>();
Exception ex = null;
int recordNum = 1;
IGMLGeometry geometry = null;
try {
for (FeatureMember fm : fc.getFeatureMembers()) {
geometry = fm.getShapeField();
IGMLGeometryConverter converter = GMLGeometryConverterFactory.getInstance(geometry);
WebGeometry webGeo = converter.toWebGeometry(geometry);
QueryResult qr = new QueryResult(layerInfo, "Test", query, fm.getFeatureObjects(), ext, webGeo);
WebExtent resultExtent = GeometryUtil.computeWebExtent(webGeo);
qr.setExtent(resultExtent);
results.add(qr);
recordNum++;
}
} catch (Exception ex2) {
_logger.error("Failed on coverting geometry index #" +recordNum);
geometry.print();
ex = ex2;
} finally {
if (ex != null) {
throw ex;
}
}
return results;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -