Hi all,

I have coded a GeoDJango app to import a KML file into a PostGIS 
database, preserving folders and styles.
I can successfully display the features (or "placemarks" in KML 
terminology) on my OpenLayers map, serving them with FeatureServer.
Each feature has a folder_id and a style_id attribute.
I also have two custom webservices, generating JSON documents :
- one with the styles to be used for each feature (and loaded using 
StyleMap.addUniqueValueRules),
- another with the hierarchy of folders.
The hierarchy of folders is then displayed (using ExtJS Ext.tree), 
allowing to show/hide folders (and features contained into folders) - in 
a manner similar to Google Earth.

I think that my current implementation is a bit naive, since each time I 
check/uncheck a folder, I :
- create a new StyleMap,
- apply the KML styles,
- apply a dynamic "foldervisibility" map (containing, for each folder, a 
{display:'none'} if the folder should be hidden),
- redraw the layer.
This approach worked well enough at first (displaying 150 linestrings 
with ~10 points per linestring), but when I added the "points" layer 
with 250 point features, it started to be really slow.

I have four layers right now : a WMS background map, and three Vector 
layers (for points, linestrings and polygons).
I am considering two other methods :

1. Use one distinct layer for each KML folder, and toggle layer 
visibility when the user checks/unchecks a folder.
Since I have ~50 folders (and probably hundreds when the app will be in 
production), I am wondering if OpenLayers is supposed to behave nicely 
with large number of layers ?

2. Maintain (client-side or server-side) a mapping to associate a folder 
with the list of features contained into the folder.
In that case, should I toggle each feature visibility and redraw them 
one by one, or is there a more efficient way (like, toggling visibility 
and redrawing the whole layer, or submitting the list of modified 
features...?)

Any comment about those methods will be more than welcome ! :-)

By the way, if anyone thinks that the KML->GeoDjango importer can be 
useful, it will be made public (but it's still at preliminary stages, 
therefore not very well documented nor written, to be honnest!)

Best regards,

_______________________________________________
Users mailing list
[email protected]
http://openlayers.org/mailman/listinfo/users

Reply via email to