/** * Writes a Json (or Jsonp) response on the passed output stream * * @see {@link GetFeatureInfoOutputFormat#write(FeatureCollectionType, GetFeatureInfoRequest, * OutputStream)} */ @Override public void write( FeatureCollectionType features, GetFeatureInfoRequest fInfoReq, OutputStream out) throws IOException { GeoJSONGetFeatureResponse format = new GeoJSONGetFeatureResponse(wms.getGeoServer(), getContentType()); format.write(features, out, null); }
@Override protected void writeCollectionCRS(GeoJSONBuilder jsonWriter, CoordinateReferenceSystem crs) throws IOException { // write the CRS block only if needed if (!CRS.equalsIgnoreMetadata(DefaultGeographicCRS.WGS84, crs)) { super.writeCollectionCRS(jsonWriter, crs); } }
/** * Is WFS configured to return feature and collection bounds? * * @return */ protected boolean isFeatureBounding() { WFSInfo wfs = getInfo(); return wfs.isFeatureBounding(); }
outWriter.write(getCallbackFunction() + "("); boolean isComplex = isComplexFeature(featureCollection); if (featureCount != null && isComplex && featureCount.equals(BigInteger.ZERO)) { final GeoJSONBuilder jsonWriter = getGeoJSONBuilder(featureCollection, outWriter); jsonWriter.object().key("type").value("FeatureCollection"); jsonWriter.key("features"); List<FeatureCollection> resultsList = featureCollection.getFeature(); FeaturesInfo featuresInfo = writeFeatures(resultsList, operation, isComplex, jsonWriter); writeCollectionCounts(featureCount, numberReturned, jsonWriter); writeCollectionTimeStamp(jsonWriter); writePagingLinks(featureCollection, operation, jsonWriter); writeCollectionCRS(jsonWriter, crs); writeCollectionBounds(isFeatureBounding(), jsonWriter, resultsList, hasGeom); writeExtraCollectionProperties(featureCollection, operation, jsonWriter);
public void write(Object value, OutputStream output, Operation operation) throws IOException { // was it a single feature request? String requestFeatureId = getWFS3FeatureId(); if (requestFeatureId != null) { try { WFS3_FEATURE_ID.set(requestFeatureId); writeSingleFeature((FeatureCollectionResponse) value, output, operation); } finally { WFS3_FEATURE_ID.remove(); } } else { super.write(value, output, operation); } }
/** * Writes WFS3 compliant paging links * * @param response * @param operation * @param jw */ protected void writePagingLinks( FeatureCollectionResponse response, Operation operation, GeoJSONBuilder jw) { if (response.getPrevious() != null || response.getNext() != null) { jw.key("links"); jw.array(); String mimeType = getMimeType(response, operation); writeLink(jw, "previous page", mimeType, "previous", response.getPrevious()); writeLink(jw, "next page", mimeType, "next", response.getNext()); jw.endArray(); } }
/** * Builds, configures and returns {@link GeoJSONBuilder} * * @param featureCollection * @param outWriter * @return */ protected GeoJSONBuilder getGeoJSONBuilder( FeatureCollectionResponse featureCollection, Writer outWriter) { final GeoJSONBuilder jsonWriter = new GeoJSONBuilder(outWriter); int numDecimals = getNumDecimals(featureCollection.getFeature(), gs, gs.getCatalog()); jsonWriter.setNumberOfDecimals(numDecimals); jsonWriter.setEncodeMeasures( encodeMeasures(featureCollection.getFeature(), gs.getCatalog())); return jsonWriter; }
if (!isComplex) { featuresInfo = encodeSimpleFeatures(jsonWriter, resultsList, isFeatureBounding(), operation); } else {
boolean featureBounding, Operation operation) { String id_option = getIdOption(); writeExtraFeatureProperties(simpleFeature, operation, jsonWriter);