[ka-Map-users] layer controls - your opinion requested
Paul Spencer
pspencer at dmsolutions.ca
Tue Aug 2 17:39:00 EDT 2005
hello ka-mapers!
I'm soliciting feedback on how the layer control (kaLegend) works. It
currently serves my purposes in most cases but it could stand some
improvements.
I am not going to build a completely flexible template-based legend ala
mapserver legend templates, but I am open to suggestions on how to make
the existing layer control more flexible - others can build different
layers controls if they wish :>
Currently it works by assuming that everything with no group (or in the
group named __base__) is part of a group labelled 'Base' in the
interface. This special group cannot be turned off as it.
Any other groups in the map file are loaded as separately controllable
elements in the legend control, one checkbox per group.
For each group, you can expand it to show the mapserver legend for that
group (based on the LEGEND object in the map file, not a legend template).
For each group, you can control the visibility and the opacity on the
client side. The visibility is handled via the checkbox. There is no
visible way to control opacity (any more) but it could be added by a
third party if they wished - instead, you can control the opacity via
the map file by adding metadata "opacity" "50" on the first layer in any
group.
(Are there other things we could control on a layer-by-layer basis?)
Its pretty obvious that the name 'Base' is not particularly suited to
most applications ... Also, it may be desirable to have one or more
'groups' of layers that cannot be turned on/off ... but perhaps have
variable opacity etc.
I think one solution to this is to provide more metadata in the map file
that can control the functionality of the legend. What I am currently
thinking of doing is removing the magic 'Base' group and instead
allowing groups to have visibility controls or not via metadata:
visibility_control: true/false
This could optionally be expanded to include:
opacity_control: true/false
The default for both would be 'false' if not explicitly set to 'true'
(i.e. missing or any other value than true)
Group/Layer order is currently not fully respected in that the special
'Base' layer is kept at the bottom on the client side. In making the
above change, I would also remove this restriction so that the static
layers could be placed anywhere in the map drawing order and have that
respected on the client side.
For performance reasons, we turn off all unnecessary layers during
dragging. I would propose to change this to either:
1) turn off only layers that have visibility_control set to true
- OR -
2) provide another metadata to control which layers are left on when
dragging (I'm open to suggestions on naming for this, plus defaults)
Finally, what should we do with layers that have no group set? Perhaps
they could still go into a special 'Base' group? Or 'Ungrouped Layers'?
If there is any other functionality or any objection/changes to the
stuff I've mentioned here, please post on the list to get your opinion
heard :)
Cheers
Paul
--
+-----------------------------------------------------------------+
|Paul Spencer pspencer at dmsolutions.ca |
+-----------------------------------------------------------------+
|Applications & Software Development |
|DM Solutions Group Inc http://www.dmsolutions.ca/|
+-----------------------------------------------------------------+
More information about the ka-Map-users
mailing list