phpmapscript imagemap attributes
Yewondwossen Assefa
assefa at DMSOLUTIONS.CA
Fri Jun 29 05:17:48 PDT 2007
Doug,
I am not very familiar with imagemap output but what I can certainly
do is test the output results and see why there is a problem with the
"coords" output, if you provide me a simple map and data. Note that I
will do the tests with Mapserver svn (to be 5.0 release). Note that I
did a couple of tests with tests data that I have here and the "cooords"
result seem to be correct.
Later,
Doug Williams wrote:
> Hi All, Jeff, Assefa,
>
> I have made a phpmapscript to generate an imagemap for my drawn map so when mousing over the
> map information about the shp below the mouse cursor is displayed beside the cursor. I like the way
> it works,
>
> http://www.wildweb.org/imagemap/
>
> except for a couple of questions! I am using version 4.8 on linux.
>
> 1) Some of the polygon coords for the map areas begin with a comma, such as
>
> <map name="map_test" width="600" height="300">
> <area onMouseOver="handleClick(event,'boxinfo','show it',' NAME '); return false;"
> onMouseOut="handleClick(event,'boxinfo','hide it',''); return false;" title="" shape="poly" coords="
> 96,70, 96,69, 95,68, 105,68, 105,73, 101,73, 101,74, 95,74, 95,73, 93,73, 94,72, 93,72, 93,70,
> 92,70, 92,69, 93,70, 95,70, 96,70, 96,71, 95,71, 95,72, 96,71, 96,70" />
> <area onMouseOver="handleClick(event,'boxinfo','show it',' NAME '); return false;"
> onMouseOut="handleClick(event,'boxinfo','hide it',''); return false;" title="" shape="poly" coords=",
> 95,69" />
> ......
> </map>
>
> Notice how the coords for the second area begin with a comma. Does that mean I have a bad shape
> file? Those commas seem problematic for some browsers when using the imagemap. If I delete the
> commas by brute force and then display the edited html file, the imagemap works properly in all the
> browsers I have checked, although I guess that the areas with just two coords are not good...
>
>
> 2) I cannot figure how to get the attribute data for the shape. The cgi version of mapserver describes
> using a template, but where the cgi version describes the use of templates for other tasks, I have not
> found them useful for phpmapscript version, nor am I using, for this script, the header and footer
> templates as described in the cgi version imagemap creation tutorial, as setting the OUTPUTFORMAT
> driver to imagemap along with the correct FORMATOPTIONs generates everything as described in the
> cgi version tutorial, except I am not understanding how to get the attribute data other than the shp
> coords.
>
> The cgi version says the the mode would need to be set to nquery. I think this means that
> phpmapscript does a drawQuery(). Attempting this results in:
>
> Warning: [MapServer Error]: msDrawQueryMap(): Unable to initialize image. in /.../index.php on line
> 184
> Fatal error: Call to a member function on a non-object in /.../index.php on line 185
>
> It does not seem necessary to use drawQuery(). draw() provides the coords as desired (w/ the
> question about the commas above).
>
> My belief is that I would grab the attribute data in the FORMATOPTION statement. Am I on the right
> track? Does this capability exist as part of the OUTPUTFORMAT imagemap driver in phpmapscript?
>
> This is my OUTPUTFORMAT to create the imagemap:
> OUTPUTFORMAT
> NAME imagemap
> DRIVER imagemap
> FORMATOPTION "MAPNAME=map_test"
> FORMATOPTION "POLYHREF="
> FORMATOPTION "POLYMOUSEOUT=handleClick(event,'boxinfo','hide it',''); return false;"
> FORMATOPTION "POLYMOUSEOVER=handleClick(event,'boxinfo','show it','%NAME%'); return false;"
> FORMATOPTION "TITLE="
> MIMETYPE "text/html"
> END
>
> The %NAME% was based on the sections discussing cookie variables and such, and NAME just ends
> up displayed without the % chars. [NAME] as shown in the cgi version doc produces [NAME] as
> output. I have tried escaping the ' char with \, but that results in an error. Is there a code to put in
> the FORMATOPTION statement to obtain attribute data?
>
> Does the layer definition matter? Here is my layer definition:
> LAYER
> NAME "lakes"
> DATA esri/world/lakes
> STATUS on
> PROJECTION
> "proj=latlong"
> END #projection
> TYPE POLYGON
> METADATA
> "DESCRIPTION" "Lakes"
> "RESULT_FIELDS" "NAME SURF_ELEV DEPTH"
> END
> # HEADER "lakes_header.html"
> # FOOTER "lakes_footer.html"
> TEMPLATE ""
> CLASS
> NAME "States"
> OUTLINECOLOR 0 0 0
> END
> END
>
> I have tried this with a couple of different layers and like the imagemap result (aside from not
> understanding why some area coords begin with a comma), but without the attribute data I am not
> sure what to do with it!
>
> All ideas would be much appreciated,
>
> Doug
>
--
----------------------------------------------------------------
Assefa Yewondwossen
Software Analyst
Email: assefa at dmsolutions.ca
http://www.dmsolutions.ca/
Phone: (613) 565-5056 (ext 14)
Fax: (613) 565-0925
----------------------------------------------------------------
More information about the MapServer-users
mailing list