Opened 19 years ago

Last modified 19 years ago

#1459 new enhancement

Enhancements to enable the imagemap for point symbols to work properly

Reported by: covariance@… Owned by: sdlime
Priority: high Milestone:
Component: MapServer CGI Version: unspecified
Severity: minor Keywords:
Cc: mapserver@…, pierre.giraud@…, covariance@…

Description

As the coding now stands, the imagemapping for point symbols doesn't assign 
unique keys or codes to the point symbols that are being mapped when creating 
image maps. Because of that I have made some changes to the MapServer code in 
version 4.5 that pass the symbol attributes (keys) down to the procedure that 
does the imagemapping so that these keys are used when producing the areas 
delineating the point symbols in the image map. I can now produce image maps 
that outline the point symbols and uniquely reference them so that I can have 
the web page act on mouse actions on the point symbols. You can view this in 
action by going to the page 
http://www.themuralsofwinnipeg.com/Mpages/indexMuralsMap.php and selecting a 
mural from the drop down box and then mousing over the mural symbol and 
clicking on it. When you go to a different mural it responds with the 
information for that mural, this is only possible because of these patches to 
the MapServer to enable this.

There have been users asking about this capability on the list during the last 
year and I have had a user directly requesting me to provide these changes to 
them if they weren't included in the MapServer code so I'm hoping that they can 
get integrated into it.

I have saved original copies of the modules that I have changed and have copies 
of the new modules and have ZIPed them in their directory structures so that 
they can easily be compared and so that the changes that I've made can be 
easily identified. The URL provides the address of the ZIP file containing the 
code changes for you to download for your evaluation and inclusion into the 
MapServer.

   Bob Bruce, Winnipeg, Manitoba

Attachments (3)

mapserver_dev.zip (155.1 KB ) - added by covariance@… 19 years ago.
Contains original and patched source files for identifying changes
patch_imagemap_c2c_pierre_giraud.tar.gz (48.1 KB ) - added by pierre.giraud@… 19 years ago.
patch for imagemap functionnalities
patch_imagemap_c2c_pierre_giraud.txt (20.7 KB ) - added by pierre.giraud@… 19 years ago.
patch for imagemap functionnalities

Download all attachments as: .zip

Change History (11)

by covariance@…, 19 years ago

Attachment: mapserver_dev.zip added

Contains original and patched source files for identifying changes

comment:1 by sdlime, 19 years ago

The original developer of the imagemap code has, um, disappeared so I'm
concerned about its long term viability. Have you, by chance, played with the
[shpxy ...] tag as an alternative way to generate image maps? Combined with AJAX
it may prove to be far more powerful than the imagemap output type (and easier
to maintain).

I'll try to have a look at your changes ASAP though...

Steve

comment:2 by pierre.giraud@…, 19 years ago

Cc: pierre.giraud@… added

comment:3 by pierre.giraud@…, 19 years ago

My company is also interessed in using the imagemap functionnalities.
I gave Bob Bruce's patch a look and made my own modifications considering that
it was incomplete.

My first goal was to have the ellipse symbol for point layers working.
Then, I needed one mapfile parameter (IMAGEMAPITEM) so that I could define which
layer(s) to render with imagemap, and which field to use as shape index (for
javascript functions). So, I added a specific structure : IMObj.
This allows me to distinguished title (give by LABELITEM) and index (given by
IMAGEMAPITEM) of a shape.

Finally, I reversed the layer order for imagemap.

Here are the main modifications :

mapdraw.c :
 - layer order is reversed for imagemap so that top layers are writen first in
the map area section,
 - only "imagemapable" layers are rendered,

mapimagemap.c :
 - METADATA IMAGEMAPITEM used as shape indexes (replace %s in formatoptions),
 - LABELITEM is used for title attribute in areas, if not set, title attribute
is given the shape index value,
 - added ellipse symbol for point layers support,

map.h
 - new structure for IMObj,
 - declaration of msIsLayerImagemapable and msImageStartLayerIM

by pierre.giraud@…, 19 years ago

patch for imagemap functionnalities

by pierre.giraud@…, 19 years ago

patch for imagemap functionnalities

comment:4 by mapserver@…, 19 years ago

Cc: mapserver@… added

comment:5 by pierre.giraud@…, 19 years ago

Here's a demo that can help to appreciate online functionnalities of the
imagemap driver.

http://dev.camptocamp.com/~pierre/im/im.php

This only is a temporary demo, and I'm sorry for the bad speed connection.

Hope this will help for the driver implementation.

comment:6 by sdlime, 19 years ago

FYI The demo doesn't do anything, not in IE anyway... 

Steve

comment:7 by pierre.giraud@…, 19 years ago

Have you tried using the information tool ?

comment:8 by sdlime, 19 years ago

Sorry, was away from my email most of last week and am just getting caught up.
The tool worked. I get the idea and have used the shpxy technique as a way to do
the same thing. I'm not keen on adding new objects/structures or keywords to
support a specific output driver unless absolutely necessary.

Steve
Note: See TracTickets for help on using tickets.