Maybe this triggers some new ideas: I've got an application running where users can edit a map with many elements.
Instead of sending all data as WFS, I use WMS maps, and when the user clicks, or draws a selection, I fetch the selected items as WFS.
After sending an update back to the server, I refresh the WMS layer.
There are some OpenLayers examples that demonstrate how you can do that. You'll probably have to tweak it a bit, but OpenLayers+GeoServer will work out the difficult part for you. The data is sent gzipped, so the original format is not even that important; it's not the bottleneck. Let OpenLayers and GeoServer figure out what format they use to exchange information.
This approach scales pretty well. Even people with slow connections and slow computers can use it to edit the map. Fetching hundreds of elements is very quick, and you probably won't need more than that at the same time to edit.
Finally.. off-topic, but as you intend to do client-side stuff with map data:
Keep in mind that IE7 and lower are going to be problematic if you want to draw polygons with OpenLayers. OpenLayers uses SVG for client-side drawing, and IE7 and lower don't have support built in. Those users will be required to download a crappy old plugin.
All other browsers are fine.
This is a known limitation of the .dbf files that accompany the shapefiles.
This among other reasons is why the shapefile format is being slowly phased out and replaced by more robust formats.
As I see it, the only reasons the shapefile is still around is because it still can be read by every GIS software under the sun.
As for your problem you have two options :
- You can decide on a new nomenclature to hold your fields taking
into account the 10 character limit.
- You can choose a more modern
format for your data that doesn't have the said limitation.
If you run ogr2ogr --formats | grep write
you can see a list with all the formats your ogr's installation can handle as output.
Best Answer
I have done a similar thing using OpenLayers. My use case was actually points not polygons but the principle is the same. I stored the data in a PostGIS back-end and used a simple Python script to update the PostGIS store on a periodic basis (every 10 miliseconds in my case). I then used Geoserver to server the PostGIS layer as a WFS service. If you then use OpenLayers.Strategy.Refresh in your webpage to update your WFS layer, you can achieve nice animation of changing geographic features.