Search in sources :

Example 1 with XMLSerializer

use of com.github.desjardins.elemental.XMLSerializer in project gwt-ol3 by TDesjardins.

the class WfsExample method show.

/* (non-Javadoc)
     * @see de.desjardins.ol3.demo.client.example.Example#show()
     */
@Override
public void show(String exampleId) {
    // create a vector layer
    Vector vectorSource = new Vector();
    VectorLayerOptions vectorLayerOptions = new VectorLayerOptions();
    vectorLayerOptions.setSource(vectorSource);
    ol.layer.Vector wfsLayer = new ol.layer.Vector(vectorLayerOptions);
    // create a view
    View view = new View();
    Coordinate centerCoordinate = new Coordinate(-8908887.277395891, 5381918.072437216);
    view.setCenter(centerCoordinate);
    view.setZoom(12);
    view.setMaxZoom(19);
    // create the map
    MapOptions mapOptions = OLFactory.createOptions();
    mapOptions.setTarget(exampleId);
    mapOptions.setView(view);
    Map map = new Map(mapOptions);
    map.addLayer(DemoUtils.createOsmLayer());
    map.addLayer(wfsLayer);
    Wfs wfs = new Wfs();
    WfsWriteFeatureOptions wfsWriteFeatureOptions = new WfsWriteFeatureOptions();
    String[] featureTypes = { "water_areas" };
    wfsWriteFeatureOptions.setSrsName("EPSG:3857");
    wfsWriteFeatureOptions.setFeaturePrefix("osm");
    wfsWriteFeatureOptions.setFeatureNS("http://openstreemap.org");
    wfsWriteFeatureOptions.setFeatureTypes(featureTypes);
    // set a filter
    wfsWriteFeatureOptions.setFilter(new IsLike("name", "Mississippi*"));
    wfsWriteFeatureOptions.setOutputFormat("application/json");
    // create WFS-XML node
    Node wfsNode = wfs.writeGetFeature(wfsWriteFeatureOptions);
    RequestBuilder requestBuilder = new RequestBuilder(RequestBuilder.POST, "https://ahocevar.com/geoserver/wfs");
    requestBuilder.setRequestData(new XMLSerializer().serializeToString(wfsNode));
    requestBuilder.setCallback(new RequestCallback() {

        @Override
        public void onResponseReceived(com.google.gwt.http.client.Request request, Response response) {
            GeoJson geoJson = new GeoJson();
            Feature[] features = geoJson.readFeatures(response.getText());
            vectorSource.addFeatures(features);
            map.getView().fit(vectorSource.getExtent());
        }

        @Override
        public void onError(com.google.gwt.http.client.Request request, Throwable exception) {
            Window.alert(exception.getMessage());
        }
    });
    try {
        requestBuilder.send();
    } catch (RequestException e) {
        Window.alert(e.getMessage());
    }
}
Also used : RequestBuilder(com.google.gwt.http.client.RequestBuilder) MapOptions(ol.MapOptions) Node(elemental2.dom.Node) GeoJson(ol.format.GeoJson) IsLike(ol.format.filter.IsLike) RequestException(com.google.gwt.http.client.RequestException) Vector(ol.source.Vector) XMLSerializer(com.github.desjardins.elemental.XMLSerializer) Wfs(ol.format.Wfs) View(ol.View) VectorLayerOptions(ol.layer.VectorLayerOptions) Response(com.google.gwt.http.client.Response) WfsWriteFeatureOptions(ol.format.WfsWriteFeatureOptions) RequestCallback(com.google.gwt.http.client.RequestCallback) Coordinate(ol.Coordinate) Map(ol.Map)

Aggregations

XMLSerializer (com.github.desjardins.elemental.XMLSerializer)1 RequestBuilder (com.google.gwt.http.client.RequestBuilder)1 RequestCallback (com.google.gwt.http.client.RequestCallback)1 RequestException (com.google.gwt.http.client.RequestException)1 Response (com.google.gwt.http.client.Response)1 Node (elemental2.dom.Node)1 Coordinate (ol.Coordinate)1 Map (ol.Map)1 MapOptions (ol.MapOptions)1 View (ol.View)1 GeoJson (ol.format.GeoJson)1 Wfs (ol.format.Wfs)1 WfsWriteFeatureOptions (ol.format.WfsWriteFeatureOptions)1 IsLike (ol.format.filter.IsLike)1 VectorLayerOptions (ol.layer.VectorLayerOptions)1 Vector (ol.source.Vector)1