Я использую 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 многоугольник или карту, не обновляя навигатор?