Mais

Como definir a versão do wfs-t no openlayers-3?

Como definir a versão do wfs-t no openlayers-3?


estou a usarwfs-tno OpenLayers-3.6 de acordo com aqui. Modifiquei um recurso e enviei uma solicitação wfs da seguinte maneira:

var properties = disabledFeature.getProperties (); delete properties.boundedBy; newFeature = novo ol.Feature (propriedades); newFeature.setId (features [i] .getId ()); var node = wfs.writeTransaction (null, [newFeature], null, {featureType: "Calk: Point", // geoserver Nome da camada featureNS: "http://itsme.calk.ir", // Editar namespace do espaço de trabalho URI srsName : "EPSG: 4326"}); var s = new XMLSerializer (); var url = "http: // localhost: 8084 / geoserver / wfs"; Ext.Ajax.request ({url: 'proxy.cgi? Url =' + encodeURIComponent (url), método: 'POST', xmlData: s.serializeToString (nó), cabeçalhos: {'Content-Type': 'text / xml '}, sucesso: função (resposta_) {resposta = resposta_;}});

A versão padrão queOpenLayersfunciona é "1.1.0", nesta configuração, desejo trabalhar com a versão "2.0.0". Como posso definir a versão?


Olhando para o código-fonte, ool.format.WFSconstrutor pode ser personalizado para suportar diferentes formatos WFS (comgmlFormat, eschemaLocation), mas afeta apenas o processo de leitura, não seuwriteTransactionmétodo. Como você pode ver no código a seguir, o método é codificado para suportar apenas transações WFS 1.1.0. Há um e-mail na lista de discussão ol3 dev sobre o não planejamento do suporte a WFS 2.0, mas é bem antigo.

/ ** * Codifica o formato como 'Transação' WFS e retorna o Nó. * * @param {Array.} inserts Os recursos a serem inseridos. * @param {Array.} updates Os recursos a serem atualizados. * @param {Array.} exclui Os recursos a serem excluídos. * @param {olx.format.WFSWriteTransactionOptions} opções Opções de gravação. * Resultado de @return {Node}. * @api stable * / ol.format.WFS.prototype.writeTransaction = função (inserções, atualizações, exclusões, opções) {var objectStack = []; var node = ol.xml.createElementNS ('http://www.opengis.net/wfs', 'Transação'); node.setAttribute ('serviço', 'WFS'); node.setAttribute ('versão', '1.1.0'); var baseObj, obj; if (goog.isDef (options)) {baseObj = goog.isDef (options.gmlOptions)? options.gmlOptions: {}; if (goog.isDef (options.handle)) {node.setAttribute ('handle', options.handle); }} ol.xml.setAttributeNS (nó, 'http://www.w3.org/2001/XMLSchema-instance', 'xsi: schemaLocation', this.schemaLocation_); if (goog.isDefAndNotNull (inserts)) {obj = {node: node, featureNS: options.featureNS, featureType: options.featureType, featurePrefix: options.featurePrefix}; goog.object.extend (obj, baseObj); ol.xml.pushSerializeAndPop (obj, ol.format.WFS.TRANSACTION_SERIALIZERS_, ol.xml.makeSimpleNodeFactory ('Insert'), inserts, objectStack); } if (goog.isDefAndNotNull (updates)) {obj = {node: node, featureNS: options.featureNS, featureType: options.featureType, featurePrefix: options.featurePrefix}; goog.object.extend (obj, baseObj); ol.xml.pushSerializeAndPop (obj, ol.format.WFS.TRANSACTION_SERIALIZERS_, ol.xml.makeSimpleNodeFactory ('Atualizar'), atualizações, objectStack); } if (goog.isDefAndNotNull (deletes)) {ol.xml.pushSerializeAndPop ({node: node, featureNS: options.featureNS, featureType: options.featureType, featurePrefix: options.featurePrefix}, ol.format.WFS.TRANSACTION_SERIALIZERS_, ol .xml.makeSimpleNodeFactory ('Excluir'), exclui, objectStack); } if (goog.isDef (options.nativeElements)) {ol.xml.pushSerializeAndPop ({node: node, featureNS: options.featureNS, featureType: options.featureType, featurePrefix: options.featurePrefix}, ol.format.WFS.TRANSACTION_SERIALIZERS_ , ol.xml.makeSimpleNodeFactory ('Native'), options.nativeElements, objectStack); } nó de retorno; };

Assista o vídeo: Geoserver for WebGIS development WMS, WFS, WFS-T Service, Feature editing on web.