Обновите информацию об атрибутах, используя WFST в openlayers3 - PullRequest
0 голосов
/ 24 апреля 2018

Я занимаюсь разработкой веб-приложения, в котором мне нужно обновить атрибут функции, поступающей из геосервера. Я попытался обновить информацию об атрибутах, используя приведенный ниже код.

this.update = function(p,f) {
        var formatWFS = new ol.format.WFS();
        var formatGML = new ol.format.GML({
            featureNS: 'http://www.openplans.org/topp', /*namespace URI */
            featureType: 'MultiPolygon',
            srsName: 'EPSG:3857'
        });
        switch (p) {
            case 'update':
                node =  formatWFS.writeTransaction([f], null, null, formatGML);
                break;
        }

        s =  new XMLSerailizer();
        str = s.serializeToString(node);
        $.ajax('http://localhost:8080/geoserver/wfs', {
            type: 'POST',
            dataType: 'xml',
            processData: false,
            contentType: 'text/xml',
            data: str
        }).done();

    }

И событие клика

 <div class="btn-group">
    <button class="btn btn-default" ng-disabled="ctrl.saveFeature" ng-click="ctrl.update('update',ctrl.selected_property['layer']['features'])"><span class="fa fa-save"></span> Update</button>
</div>

Где ctrl.selected_property ['layer'] ['features'] будет в следующей структуре

0:
  $$hashKey: "object:271"
  geometry: {type: "MultiPolygon", coordinates: Array(1)}
  geometry_name: "the_geom"
  id:"tn_naturals.377"
  properties:
    NAME:""
    TYPE:"forest123"
    type:"Feature"
...