[OpenLayers-Users] Help with Strategy.save and protocol.http

Eric Lemoine eric.lemoine at camptocamp.com
Wed May 19 11:56:57 EDT 2010


On Wed, May 19, 2010 at 3:44 PM, Frank Broniewski <brfr at metrico.lu> wrote:
> Hello all,
>
> I am currently (virtually ;-))fighting to understand how I can make an
> editable layer in OpenLayers. Especially the connection between the
> save-strategy and the protocol is difficult to understand. I already
> searched the docs and the mailing list, but was unable to find some kind
> of definition what exactly a strategy or a protocol is and for what kind
> of "behavoir" they are responsible.
>
> I managed to create a working example, where I could edit/create/modify
> features and the changes were sent to my server but I really lack
> understanding how things work together ...
>
> var points = new OpenLayers.Layer.Vector(
>        'Viaah Points',
>        {
>                'protocol' : new OpenLayers.Protocol.HTTP(
>                                {
>                                'url' : '/my/layer.geojson',
>                                'format' : new OpenLayers.Format.GeoJSON()
>                                }
>                ),
>                'strategies' : [
>                        new OpenLayers.Strategy.BBOX(),
>                        new OpenLayers.Strategy.Save({auto:true})
>                ]
>        }
> );
>
> I added a standard editing toolbar, and with the auto:true save-strategy
> I could see the requests sent to the server in firebug.
>
>  From what I have guessed so far: Is it true that the save-strategy uses
> the protocols methods for read/update/create/delete depending on the
> edit-actions taken by the user?

The save strategy just calls protocol.commit(). See
<http://trac.openlayers.org/browser/trunk/openlayers/lib/OpenLayers/Strategy/Save.js#L178>.

The protocol's commit method looks at the states of the features and
calls the appropriate method (update/create/delete). See
<http://trac.openlayers.org/browser/trunk/openlayers/lib/OpenLayers/Protocol/HTTP.js#L519>.

> And I presume it's somewhat hard-coded,
> that updates are done by a HTTP PUT, create by HTTP POST etc. ?

Yes.

> In the
> mailing lists post I often saw a callback function mentioned for the
> protocol - does this function get called after the request has been sent
> to the server?

No, after the response is received.

>
> I am sure I have more questions, but these are the most basic ones
> concerning editing of features. Any info on these internals is greatly
> welcome

The code is a great information source to know about the internals of
OpenLayers :-)

-- 
Eric Lemoine

Camptocamp France SAS
Savoie Technolac, BP 352
73377 Le Bourget du Lac, Cedex

Tel : 00 33 4 79 44 44 96
Mail : eric.lemoine at camptocamp.com
http://www.camptocamp.com



More information about the Users mailing list