[TinyOWS-users] Problem inserting new features

Nicolás Ardissono nicolasardissono at yahoo.com.ar
Fri Dec 2 15:35:19 EST 2011


I had the same problem, and you have two options to solve it. Because is a field order problem.
Check with pgadmin how your fields are orderer, you have first name and then the_geom, so tinyows doesn't except anything after the_geom. What you have to do is delete the name field and create it again so it will be after the_geom, with that it works for me.

Or you can try this script, but not always work:

/**
 * @requires OpenLayers/Strategy.js
 */

/**
 * Allow to force the ordering of attributes before saving
 *
 * @class
 */
OpenLayers.Strategy.SaveAttrOrder =
  OpenLayers.Class(OpenLayers.Strategy,
{

  /**
   * Order of attributes to save.
   *
   * Only the attributes listed here will be saved!
   *
   * @type {Array.<string>}
   */
  order: [],

  /**
   * Strategy to communicate with for save operation
   *
   * @type {OpenLayers.Strategy.Save}
   */
  saveStrategy: null,

  /**
   * APIMethod: activate
   * Activate the strategy.  Register any listeners, do appropriate setup.
   *
   * Returns:
   * {Boolean} The strategy was successfully activated.
   */
  activate: function() {
    var activated = OpenLayers.Strategy.prototype.activate.call(this);
    if (activated) {
      this.saveStrategy.events.on({
          start: this.beforeSave,
          scope: this
      });
    }
    return activated;
  },

  /**
   * APIMethod: deactivate
   * Deactivate the strategy.  Unregister any listeners, do appropriate
   *     tear-down.
   *
   * Returns:
   * {Boolean} The strategy was successfully deactivated.
   */
  deactivate: function() {
    var deactivated = OpenLayers.Strategy.prototype.deactivate.call(this);
    if(deactivated) {
      this.saveStrategy.events.un({
          start: this.beforeSave,
          scope: this
      });
    }
    return deactivated;
  },

  beforeSave: function(event) {
    var features = event.features;
    features.forEach(dojo.hitch(this, 'reorderFeature'));
  },

  reorderFeature: function(feature) {
    var obj = {};
    this.order.forEach(
        function(attr) {
          if (feature.attributes.hasOwnProperty(attr)) {
            obj[attr] = feature.attributes[attr];
          }
        });
    feature.attributes = obj;
  }



Hope this help



________________________________
 De: Jessica Lapointe <jlapointe at mapgears.com>
Para: tinyows-users at lists.maptools.org 
Enviado: viernes, 2 de diciembre de 2011 16:41
Asunto: [TinyOWS-users] Problem inserting new features
 
Hello,
I'm having trouble in inserting new features in my db. In fact I have
the same problem as described in there:
http://lists.maptools.org/pipermail/tinyows-users/2010-November/000230.html
I use openlayers 2.11 and tinyows trunk revision 615.

I'm able to update and delete data with no problem. If I insert simple
features containing only geometry it also works. But if my new feature
has data, my xml response in firebug will be "XML request isn't
valid". Tinyows' log says :

[Fri Dec  2 14:30:11 2011] [ERROR] Element '{http://127.0.0.1/}name':
This element is not expected.

[Fri Dec  2 14:30:11 2011] [ERROR] XML request isn't valid

The xml sent to tinyows is the following:

<wfs:Transaction xmlns:wfs="http://www.opengis.net/wfs" service="WFS"
version="1.0.0" xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<wfs:Insert>
<feature:popplace xmlns:feature="http://127.0.0.1/">
<feature:the_geom>
<gml:Point xmlns:gml="http://www.opengis.net/gml" srsName="EPSG:4326">
<gml:coordinates decimal="." cs="," ts="
">-45.925780534744,-11.97656750679</gml:coordinates>
</gml:Point>
</feature:the_geom>
<feature:name>test</feature:name>
</feature:popplace>
</wfs:Insert>
</wfs:Transaction>

Any help would be appreciated.
_______________________________________________
TinyOWS-users mailing list
TinyOWS-users at lists.maptools.org
http://lists.maptools.org/mailman/listinfo/tinyows-users
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/tinyows-users/attachments/20111202/ec6fb256/attachment.html 


More information about the TinyOWS-users mailing list