[Users] LayerTree in Drake
Alexandre Dube
adube at mapgears.com
Mon Feb 16 15:12:36 CET 2009
Hi Andreas,
Thanks a lot for your well-explained answer. I currently have one
tree node with each child representing a params.LAYERS.
See below for an other question.
Thanks again,
Andreas Hocevar wrote:
> Hi,
>
> now I understand what your use case is. I think it will be good to
> support that in GeoExt. See my comments inline.
>
> Alexandre Dube wrote:
>> - I want to have one Openlayer.Layer.WMS object only
>> - That layer should contain all "layers" from a mapfile, so
>> params.LAYERS should looks like "foo1,foo2,foo3,etc..."
>> - I have so many layers in that mapfile (around 70 I think) that I
>> must find a way to build a tree by :
>> GROUP
>
> This is already possible with LayerNode
I looked but didn't quite understand. Do you have an example showing
the use of groups ?
>
>> LAYER
>
> There is something similar that I have created, but this changes the
> layer's CQL_FILTER param instead of the LAYERS param: a
> FilteredLayerNode [1] instead of a LayerNode for the GROUP, and
> CqlFilterNodes [2] for the LAYERs. If you look at [2], you see that
> only two lines would have to change for this functionality (currently
> L54-58):
>
> if(filters.length == 0) {
> // (not needed) delete this.attributes.layer.params.CQL_FILTER;
> } else {
> newParams = {"LAYERS": filters};
> }
>
> So it seems that the FilteredLayerNode can be made more generic with
> two new config options, one for the param to change and one for the
> concatenation string (not required in the case of ","). The
> CQLFilterNode is already generic enough to support that, but could use
> more generic variable and event names.
>
>> and then, if possible, display the CLASS icon as a legend
>
> Tim Coulter is currently working on a tree node that can display a
> legend graphic (e.g. from a GetLegendGraphic request) [3], but this is
> not fully functional yet.
>
>> - Using a mapserver query in mode=legend with a html template that
>> outputs javascript objects, I generate an array of groups that has
>> layers.
>
> You could create a Tree configuration, as shown in [4] when clicking
> on "Show/Edit Tree Config".
>
>> - Using that array, I must find a way to build a model for the ext.tree
>
> Not required if you look at [4], if you manage to create a valid tree
> config with your mapserver template.
>
>> - In the end, I would have my tree, and clicking on a group would
>> refresh the OL.Layer.WMS with all the "layers" names the group
>> contains...
>
> exactly!
>
>> In mapfish, when you give no model to the tree, it builds its own and
>> when, using OL.Layer.WMS or MapServer, you define an array of
>> params.LAYERS instead of a string, it automatically generate a model
>> by "layers" in the mapfile. That's what I want but with a level of
>> GROUPS and maybe, if possible, display the CLASS icons as a legend.
>>
>> So that's about it. It's a bit hard to explain more. Can GeoExt
>> achieves what I want ?
>
> As you can see, the CLASS stuff is being worked on (you might to
> support Tim here), and the Layer/Group stuff is as easy as changing
> two lines of code in the short term, and making a few things more
> generic by more or less just changing names in the long term.
>
> Regards,
> Andreas.
>
> [1]
> http://projects.opengeo.org/who/browser/ems/trunk/lib/WHO/FilteredLayerNode.js
>
> [2]
> http://projects.opengeo.org/who/browser/ems/trunk/lib/WHO/CqlFilterNode.js
>
> [3]
> http://geoext.org/trac/geoext/browser/sandbox/opengeo/drake/trunk/core/lib/GeoExt/widgets/tree/WMSLegendNode.js
>
> [4] http://demo.opengeo.org/ems/examples/gx-tree-demo.html
>
>> Christopher Schmidt wrote:
>>> On Sat, Feb 14, 2009 at 11:52:52AM +0100, Andreas Hocevar wrote:
>>>
>>>> Alexandre Dube wrote:
>>>>
>>>>> Nevermind.
>>>>>
>>>>> What I want to do will be easier in MapFish ( I think ).
>>>>>
>>>>> I want to have one Openlayer.Layer.WMS with a tree like this :
>>>>>
>>>>> Groups
>>>>> |__Layers
>>>>> |__Class
>>>>>
>>>> I think I'm missing something here. What would such a tree do to
>>>> one WMS layer? Or are you talking about a nested WMS layer. In that
>>>> case, I would be interested to see the GetCapabilities for this layer.
>>>>
>>>
>>> I'm not sure I understand the "Layers", "Class" stuff, but I think that
>>> in general, there is a desier to have multiple WMS Layers (from the
>>> GetCaps) merged into one Layer.WMS -- so when you turn on two layers,
>>> instead of two OpenLayers.Layer classes, you have one with a
>>> 'layers':'abc,123'.
>>>
>>> Regards,
>>>
>>
>>
>
>
--
Alexandre Dubé
Mapgears
www.mapgears.com
More information about the Users
mailing list