Two Keymaps??

Jennifer Zeisloft jzeisloft at GMAIL.COM
Wed Sep 7 19:06:38 EDT 2005


Hi Paul,

I apologize for taking so long to get back to you. I was waiting to hear 
whether we could afford (time-wise) to make this a priority for the project 
at this point. Unfortunately, we are up against some deadlines and I won't 
be able to get to this for a while. However, it is definitely a worthwhile 
endeavor and I hope to get back to it eventually. I will let you know when I 
do. Thanks much for the help!

Jennifer Zeisloft
UW Sea Grant

On 8/30/05, Paul Spencer <pspencer at dmsolutions.ca> wrote:
> 
> Jennifer,
> 
> you can't do this with stock MapServer as the mapfile structure will not
> permit it.
> 
> With some mapscript intervention, you can replace the image in the
> reference object. I would probably approach it differently in
> Chameleon, but a simple solution would be to have metadata at the map
> object that contains sufficient information to replace the reference map
> image.
> 
> I think you will need to know the following:
> 
> 1. image
> 2. extents of the image
> 3. extents/scale to start using the image
> 
> One of the problems that I percieve with this approach is that the
> purpose of having a second keymap would be to provide more detail when
> you zoom in. If you have one (or possibly many) pregenerated images
> then it will be possible for the user to zoom to an area that doesn't
> make sense for the keymap you have generated.
> 
> You could make it extent-sensitive and divide up the 'zoomed in' keymaps :
> 
> +----+----+
> | | |
> +----+----+
> | | |
> +----+----+
> 
> but then it would be possible to zoom in at the center of this and get
> poor results.
> 
> An alternate approach would be to use a second map file to define how to
> draw a keymap image and have it render keymap images on the fly
> depending on scale. This would be my preferred approach. You would set
> scale thresholds for producing new keymaps and when they change, they
> would always start at the center of where the user is currently viewing.
> 
> In Chameleon, I would add this as attributes of the keymap widgets to
> abstract it away from the mapfile structure, perhaps using subtags:
> 
> <cwc2 type="KeymapDHTML" ... >
> <ReferenceMap mapfile="path.to.mapfile" maxscale="100000000"/>
> <ReferenceMap mapfile="path.to.mapfile" maxscale="10000000"/>
> <ReferenceMap mapfile="path.to.mapfile" maxscale="1000000"/>
> <ReferenceMap mapfile="path.to.mapfile" maxscale="100000"/>
> </cwc2>
> 
> The widget would then have to track scale changes as the user zooms and
> pans, refreshing the keymap image each time the user moves outside the
> current extents of the keymap or changes scale across a threshold.
> 
> If you decide to attempt this, lemme know and I may have some time to
> help out as I think this would be a great improvement.
> 
> Cheers
> 
> Paul
> 
> Jennifer Zeisloft wrote:
> > Hello All-
> >
> > I am playing with including two keymaps in my application (one that is
> > more useful when zoomed in, and one when zoomed out). They would be
> > displayed simultaneously. I am having some trouble doing this, though
> > it doesn't seem like it should be too tough.
> >
> > I am also using Chameleon (the Keymap DHTML widget). However, I think
> > my first task towards accomplishing this would be on the MapServer end.
> > When I place a second Reference object in the mapfile, I receive the
> > error that there is a dupilcate item:
> >
> >
> > *Warning*: [MapServer Error]: getString(): Duplicate item (IMAGE):(line
> > 49) in *C:\ms4w\apps\chameleon\htdocs\common\wrapper\map_session.php* on
> > line *215*
> >
> > *Warning*: Failed to open map file
> > C:\ms4w\apps\chameleon\lscmp\htdocs/../map/wlscmp.map in
> > *C:\ms4w\apps\chameleon\htdocs\common\wrapper\map_session.php* on line 
> *215*
> >
> > *Fatal error*: Call to a member function on a non-object in
> > 
> *C:\ms4w\apps\chameleon\htdocs\widgets\KeyMapDHTML\KeyMapDHTML.widget.php*
> > on line *115
> >
> >
> > *
> > Might there be a simple solution? Or would I need to rewrite a bunch of
> > code somewhere (if so, where?)? I would really appreciate any hints you
> > can pass along. Thanks in advance for your help!
> >
> > Jennifer Zeisloft
> > UW Sea Grant
> 
> --
> +-----------------------------------------------------------------+
> |Paul Spencer pspencer at dmsolutions.ca |
> +-----------------------------------------------------------------+
> |Applications & Software Development |
> |DM Solutions Group Inc http://www.dmsolutions.ca/|
> +-----------------------------------------------------------------+
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.osgeo.org/pipermail/mapserver-users/attachments/20050907/5f23dadc/attachment.html


More information about the mapserver-users mailing list