[TinyOWS-users] Problems saving with demo
Gissur Þórhallsson
gissur at loftmyndir.is
Mon Oct 31 10:01:52 EST 2011
Hello Nicolas,
What does the log on the server say? I've also found it very helpful to also
fiddle with the *log_level* parameters and see what pops out.
Refer to http://www.tinyows.org/trac/wiki/ConfigFile for how to configure
logging.
I can on the other hand verify that your WFS is working fine - since I could
connect to it from qgis and add/remove an island to the Faroe Islands.
Kind regards,
Gissur
On Mon, Oct 31, 2011 at 3:41 AM, Nicolas Ardissono <
nicolasardissono at yahoo.com.ar> wrote:
> **
> Hello, i'm a newy in this matter, and after a week i have installed the
> tinyows demo in my server (debian squeeze) and i could make it work, all
> layers are showing, but i cannot make it save.
>
> Any tip or help will be apreciate. I don't know what else try, i have no
> more ideas.
>
> When i edit same features and click save this is what *firebug post*:
>
> <wfs:Transaction xmlns:wfs="http://www.opengis.net/wfs"<http://www.opengis.net/wfs>service="WFS" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/wfs
> http://schemas.opengis.net/wfs/1.1.0/wfs.xsd http://www.agpstracking.com/
> http://www.agpstracking.com/cgi-bin/tinyows?service=wfs&request=DescribeFeatureType&version=1.1.0&typename=france"<http://www.opengis.net/wfshttp://schemas.opengis.net/wfs/1.1.0/wfs.xsdhttp://www.agpstracking.com/http://www.agpstracking.com/cgi-bin/tinyows?service=wfs&request=DescribeFeatureType&version=1.1.0&typename=france>xmlns:xsi=
> "http://www.w3.org/2001/XMLSchema-instance"<http://www.w3.org/2001/XMLSchema-instance>
> >
> <wfs:Update typeName="feature:france" xmlns:feature=
> "http://www.agpstracking.com/" <http://www.agpstracking.com/>>
> <wfs:Property>
> <wfs:Name>the_geom</wfs:Name>
> <wfs:Value>
> <gml:MultiSurface xmlns:gml="http://www.opengis.net/gml"<http://www.opengis.net/gml>srsName="EPSG:27582">
> <gml:surfaceMember>
> <gml:Polygon>
> <gml:exterior>
> <gml:LinearRing>
> <gml:posList>650260.......</gml:posList>
> </gml:LinearRing>
> </gml:exterior>
> </gml:Polygon>
> </gml:surfaceMember>
> </gml:MultiSurface>
> </wfs:Value>
> </wfs:Property>
> <wfs:Property>
> <wfs:Name>gid</wfs:Name>
> <wfs:Value>90</wfs:Value>
> </wfs:Property>
> <wfs:Property>
> <wfs:Name>id_geofla</wfs:Name>
> <wfs:Value>32129</wfs:Value>
> </wfs:Property>
> <wfs:Property>
> <wfs:Name>code_chf_l</wfs:Name>
> <wfs:Value>024</wfs:Value>
> </wfs:Property>
> <wfs:Property>
> <wfs:Name>nom_chf_l</wfs:Name>
> <wfs:Value>AUXERRE</wfs:Value>
> </wfs:Property>
> <wfs:Property>
> <wfs:Name>x_chf_lieu</wfs:Name>
> <wfs:Value>6921</wfs:Value>
> </wfs:Property>
> <wfs:Property>
> <wfs:Name>y_chf_lieu</wfs:Name>
> <wfs:Value>23116</wfs:Value>
> </wfs:Property>
> <wfs:Property>
> <wfs:Name>x_centroid</wfs:Name>
> <wfs:Value>6932</wfs:Value>
> </wfs:Property>
> <wfs:Property>
> <wfs:Name>y_centroid</wfs:Name>
> <wfs:Value>23112</wfs:Value>
> </wfs:Property>
> <wfs:Property>
> <wfs:Name>nom_dept</wfs:Name>
> <wfs:Value>YONNE</wfs:Value>
> </wfs:Property>
> <wfs:Property>
> <wfs:Name>code_reg</wfs:Name>
> <wfs:Value>26</wfs:Value>
> </wfs:Property>
> <wfs:Property>
> <wfs:Name>nom_region</wfs:Name>
> <wfs:Value>BOURGOGNE</wfs:Value>
> </wfs:Property>
> <wfs:Property>
> <wfs:Name>code_dept</wfs:Name>
> <wfs:Value>89</wfs:Value>
> </wfs:Property>
> <ogc:Filter xmlns:ogc="http://www.opengis.net/ogc"<http://www.opengis.net/ogc>
> >
> <ogc:FeatureId></ogc:FeatureId>
> </ogc:Filter>
> </wfs:Update>
> </wfs:Transaction>
>
>
> *this is the tinyows response in firebug:*
>
> <?xml version='1.0' encoding='UTF-8'?><ows:ExceptionReport xmlns='http://www.opengis.net/ows' xmlns:ows='http://www.opengis.net/ows' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.opengis.net/ows http://schemas.opengis.net/ows/1.0.0/owsExceptionReport.xsd' version='1.1.0' language='en'> <ows:Exception exceptionCode='InvalidParameterValue' locator='request'> <ows:ExceptionText>XML request isn't valid</ows:ExceptionText> </ows:Exception></ows:ExceptionReport>
>
>
>
> This is what i have in:
> */etc/tinyows.xml:*
> <tinyows online_resource="http://www.agpstracking.com/cgi-bin/tinyows"<http://www.agpstracking.com/cgi-bin/tinyows>
> schema_dir="/usr/local/share/tinyows/schema/" log_level="1"
> log="/var/log/tinyows.log">
>
> <pg host="127.0.0.1" user="remise" password="12346" dbname="tinyows_demo"
> port="5433"/>
>
> <metadata name="TinyOWS Server"
> title="TinyOWS Server - Demo Service" />
>
> <layer retrievable="1"
> writable="1"
> ns_prefix="tows"
> ns_uri="http://www.agpstracking.com/"<http://www.agpstracking.com/>
> name="world"
> server="http://www.agpstracking.com/"<http://www.agpstracking.com/>
> title="World Administrative Boundaries" />
>
> <layer retrievable="1"
> writable="1"
> ns_prefix="tows"
> ns_uri="http://www.agpstracking.com/"<http://www.agpstracking.com/>
> name="france"
> server="http://www.agpstracking.com/"<http://www.agpstracking.com/>
> title="French Administrative Sub Boundaries (IGN - GeoFLA
> Departements)" />
>
> </tinyows>
>
>
> *this is the javascript file:*
>
> var map, wfs;
>
> var DeleteFeature = OpenLayers.Class(OpenLayers.Control, {
> initialize: function(layer, options) {
> OpenLayers.Control.prototype.initialize.apply(this, [options]);
> this.layer = layer;
> this.handler = new OpenLayers.Handler.Feature(
> this, layer, {click: this.clickFeature}
> );
> },
> clickFeature: function(feature) {
> // if feature doesn't have a fid, destroy it
> if(feature.fid == undefined) {
> this.layer.destroyFeatures([feature]);
> } else {
> feature.state = OpenLayers.State.DELETE;
> this.layer.events.triggerEvent("afterfeaturemodified",
> {feature: feature});
> feature.renderIntent = "select";
> this.layer.drawFeature(feature);
> }
> },
> setMap: function(map) {
> this.handler.setMap(map);
> OpenLayers.Control.prototype.setMap.apply(this, arguments);
> },
> CLASS_NAME: "OpenLayers.Control.DeleteFeature"
> });
>
>
>
> function showMsg(szMessage) {
> window.alert(szMessage);
> /*document.getElementById("message").innerHTML = szMessage;
> setTimeout(
> "document.getElementById('message').innerHTML = ''",2000);*/
> };
>
> function showSuccessMsg(){
> showMsg("Transaction successfully completed");
> };
>
> function showFailureMsg(){
> showMsg("An error occured while operating the transaction");
> };
>
>
> function init() {
> map = new OpenLayers.Map('basicMap', {
> projection: new OpenLayers.Projection("EPSG:27582"),
> units: "m",
> maxResolution: "auto",
> maxExtent: new OpenLayers.Bounds(5000,1620000,1198000,2678000),
> controls: [
> new OpenLayers.Control.PanZoom()
> ]
> });
> var base = new OpenLayers.Layer.WMS("OpenLayers WMS",
> "http://www.geosignal.org/cgi-bin/wmsmap?"<http://www.geosignal.org/cgi-bin/wmsmap?>
> ,
> {layers: "Regions,Departements",
> projection:"EPSG:27582",
> displayProjection: new OpenLayers.Projection("EPSG:27582"),
> units: "m",
> maxResolution: "auto",
> maxExtent: new OpenLayers.Bounds(5000,1620000,1198000,2678000),
> sld:
> "http://www.tinyows.org/tracdocs/demo/OpenLayers-2.9/examples/sld.xml"<http://www.tinyows.org/tracdocs/demo/OpenLayers-2.9/examples/sld.xml>
> }
> );
>
> map.addLayer(base);
>
> var saveStrategy = new OpenLayers.Strategy.Save();
> saveStrategy.events.register("success", '', showSuccessMsg);
> saveStrategy.events.register("fail", '', showFailureMsg);
>
> wfs = new OpenLayers.Layer.Vector("Editable Features", {
> strategies: [new OpenLayers.Strategy.BBOX(), saveStrategy],
> projection: new OpenLayers.Projection("EPSG:27582"),
> protocol: new OpenLayers.Protocol.WFS({
> version: "1.1.0",
> srsName: "EPSG:27582",
> url: "http://www.agpstracking.com/cgi-bin/tinyows?"<http://www.agpstracking.com/cgi-bin/tinyows?>
> ,
> featureType: "france",
> featureNS: "http://www.agpstracking.com/"<http://www.agpstracking.com/>
> ,
> geometryName: "the_geom",
> schema:
> "http://www.agpstracking.com/cgi-bin/tinyows?service=wfs&request=DescribeFeatureType&version=1.1.0&typename=france"<http://www.agpstracking.com/cgi-bin/tinyows?service=wfs&request=DescribeFeatureType&version=1.1.0&typename=france>
> ,
> outputFormat: "application/json",
> readFormat: new OpenLayers.Format.GeoJSON()
> })
> });
>
> map.addLayer(wfs);
>
> var panel = new OpenLayers.Control.Panel(
> {'displayClass': 'customEditingToolbar'}
> );
>
> var navigate = new OpenLayers.Control.Navigation({
> title: "Pan Map"
> });
>
> var draw = new OpenLayers.Control.DrawFeature(
> wfs, OpenLayers.Handler.Polygon,
> {
> title: "Draw Feature",
> displayClass: "olControlDrawFeaturePolygon",
> multi: true
> }
> );
>
> var edit = new OpenLayers.Control.ModifyFeature(wfs, {
> title: "Modify Feature",
> displayClass: "olControlModifyFeature"
> });
>
> var del = new DeleteFeature(wfs, {title: "Delete Feature"});
>
> var save = new OpenLayers.Control.Button({
> title: "Save Changes",
> trigger: function() {
> if(edit.feature) {
> edit.selectControl.unselectAll();
> }
> saveStrategy.save();
> },
> displayClass: "olControlSaveFeatures"
> });
>
> panel.addControls([navigate, save, edit, draw, del]);
> panel.defaultControl = navigate;
> map.addControl(panel);
> map.zoomToMaxExtent();
>
> }
>
>
> *this is my html file:*
>
> <html>
> <head>
> <LINK REL=StyleSheet HREF='../estilo.css' TYPE='text/css'>
> <link rel="stylesheet" href="theme/default/style.css" type="text/css" />
> <script src="OpenLayers-2.9/OpenLayers.js"></script>
> <style>
>
> #map {
> width: 800px;
> height: 500px;
> float: left;
> border: 1px solid #ccc;
> }
> #message {
> position: relative;
> left: 5px;
> }
> #docs {
> float: left;
> }
> .customEditingToolbar {
> float: right;
> right: 0px;
> height: 30px;
> width: 200px;
> }
> .customEditingToolbar div {
> float: right;
> margin: 5px;
> width: 24px;
> height: 24px;
> }
> .olControlNavigationItemActive {
> background-image:
> url("theme/default/img/editing_tool_bar.png");
> background-repeat: no-repeat;
> background-position: -103px -23px;
> }
> .olControlNavigationItemInactive {
> background-image:
> url("theme/default/img/editing_tool_bar.png");
> background-repeat: no-repeat;
> background-position: -103px -0px;
> }
> .olControlDrawFeaturePolygonItemInactive {
> background-image:
> url("theme/default/img/editing_tool_bar.png");
> background-repeat: no-repeat;
> background-position: -26px 0px;
> }
> .olControlDrawFeaturePolygonItemActive {
> background-image:
> url("theme/default/img/editing_tool_bar.png");
> background-repeat: no-repeat;
> background-position: -26px -23px
> ;
> }
> .olControlModifyFeatureItemActive {
> background-image: url(theme/default/img/move_feature_on.png);
> background-repeat: no-repeat;
> background-position: 0px 1px;
> }
> .olControlModifyFeatureItemInactive {
> background-image: url(theme/default/img/move_feature_off.png);
> background-repeat: no-repeat;
> background-position: 0px 1px;
> }
> .olControlDeleteFeatureItemActive {
> background-image: url(theme/default/img/remove_point_on.png);
> background-repeat: no-repeat;
> background-position: 0px 1px;
> }
> .olControlDeleteFeatureItemInactive {
> background-image: url(theme/default/img/remove_point_off.png);
> background-repeat: no-repeat;
> background-position: 0px 1px;
> }
> </style>
> <script src="tinyows_wfs-t.js"></script>
> </head>
>
> <body onload="init()">
> <h1 id="title">WFS Transaction Example, (TinyOWS ans
> OpenLayers)</h1>
> <div id="tags"></div>
> <p id="shortdesc">
> Shows the use of the WFS Transactions (WFS-T).
> Parks of Osnabruck (Frida).
> <br />
> Base layers is OpenStreetMap from Omniscale WMS Server.
> </p>
> <div id="basicMap"></div>
>
> <div id="message"></div>
> <div id="docs">
> <p>
> The WFS protocol allows for creation of new features and
> reading, updating, or deleting of existing features.
> </p>
> <p>
> Use the tools to create, modify, and delete (in order from
> left
> to right) features. Use the save tool (picture of a disk)
> to
> save your changes. Use the navigation tool (hand) to stop
> editing and use the mouse for map navigation.
> </p>
> <p>
> See the <a href="tinyows_wfs-t.js" target="_blank">
>
> wfs-protocol-transactions.js source</a> to see how this is
> done.
> </p>
> </div>
> </body>
> </html>
>
> THANKS
>
> _______________________________________________
> TinyOWS-users mailing list
> TinyOWS-users at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/tinyows-users
>
>
--
Gissur Þórhallsson
Loftmyndir ehf.
Laugavegur 13
IS 101 Reykjavík - Iceland
sími (tel): (+354) 540 2500
tölvupóstur (email): gissur at loftmyndir.is
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.maptools.org/pipermail/tinyows-users/attachments/20111031/be7e95aa/attachment-0001.htm
More information about the TinyOWS-users
mailing list