geoext / geoext2

GeoExt 2 — JavaScript Toolkit for Rich Web Mapping Applications
http://geoext.github.io/geoext2/
Other
142 stars 106 forks source link

Bug: GeoExt.data.FeatureStore in Synchronizing FeatoreStore with Vector Layer #162

Open Shadin opened 12 years ago

Shadin commented 12 years ago

There is something wrong in GeoExt.data.FeatureStore ,

I followed this example to load WFS vector features into a grid. http://geoext.github.com/geoext2/examples/grid/feature-grid.html

It works once, then fails many times, then suddenly works once again ... and so on.

marcjansen commented 11 years ago

Hi @Shadin , sorry for being so late.

Could you provide some details about what is going wrong?

A complete failing example including the HTML would be super helpful.

Thanks.

jgrocha commented 11 years ago

Hi Mark, hi Shadin,

I've just changed the vecLayer to get data from a WFS. Using a BBOX strategy works great, but soon as the user starts editing, the features disappears from the map (but not from the grid). Zoom out to see the features again, but there is something wrong with the synchronization. I'm sending the link to a working example where the synchronization apparently does not work. https://dl.dropboxusercontent.com/u/5489125/feature-grid-wfs.tgz Comments are welcome. Thanks, Jorge

jgrocha commented 11 years ago

Hi,

The synchronization fails when editing, even with the GeoJSON layer. To replicate the problem, just add an insert control and soon as the user enter a new feature, the synchronization is lost.

Regards, Jorge

diff --git a/examples/grid/feature-grid.js b/examples/grid/feature-grid.js
index b2186ac..d6686d4 100644
--- a/examples/grid/feature-grid.js
+++ b/examples/grid/feature-grid.js
@@ -69,6 +69,17 @@
         });
         map.addLayers([wmsLayer, vecLayer]);

+       var insertControl = new OpenLayers.Control.DrawFeature(vecLayer, OpenLayers.Handler.Point, {
+           'displayClass' : 'olControlDrawFeaturePoint'
+       });
+       var panelControls = [insertControl];
+       var toolbar = new OpenLayers.Control.Panel({
+           displayClass : 'customEditingToolbar',
+           defaultControl : panelControls[0]
+       });
+       toolbar.addControls([insertControl]);
+       map.addControl(toolbar);
+       
         // create map panel
         mapPanel = Ext.create('GeoExt.panel.Map', {
             title: "Map",