Openlayers и Geoserver - изменение многоугольника после его сохранения в WFS - PullRequest
0 голосов
/ 18 июня 2020

Я использую Openlayers 4.6.0; У меня есть этот код для сохранения нового нарисованного многоугольника:

var transactWFS = function(p,f) {
    switch(p) {
    case 'insert':
        node = formatWFS.writeTransaction([f],null,null,formatGML);
        break;
    case 'update':
        node = formatWFS.writeTransaction(null,[f],null,formatGML);
        break;
    case 'delete':
        node = formatWFS.writeTransaction(null,null,[f],formatGML);
        break;
    }
    s = new XMLSerializer();
    str = s.serializeToString(node);
    $.ajax('http://myserver:8080/geoserver/wfs',{
        type: 'POST',
        dataType: 'xml',
        processData: false,
        contentType: 'text/xml',
        version: '1.1.0',
        data: str,
        success: function (data, status) { 
                    alert( status );

                }
        });
}

Когда выполняется writeTransaction в режиме 'вставки', многоугольник сохраняется в базе данных через геосервер; проблема в том, что когда я хочу выбрать и отредактировать этот недавно нарисованный многоугольник в том же сеансе, я получаю эту ошибку:

uncaught exception: AssertionError: Assertion failed. See https://openlayers.org/en/v4.6.0/doc/errors/#27 for details. ol.js:14:871

Я получаю это потому, что новый многоугольник на самом деле не «назначен» для полигон базы данных; как я могу обновить sh многоугольник или карту, не обновляя навигатор?

...