Tooltips on icons

Daniel daniel.faivre at CAMPTOCAMP.COM
Wed Mar 30 04:11:13 EST 2005


Hello,

I realized a sample of active areas onmouseover, for tooltips AND
highlighting of features. It use the mapserver feature imagemap output.

A very simple demo is visible at http://dev.camptocamp.com/df/im/

Please consider this source code as GPL, and thus include the author
(Daniel FAIVRE) and company name (Camptocamp) as mandatory informations
for reusing this code.

This feature will be soon included in Cartoweb 3: see www.cartoweb.org
for more informations.

I hope this could help.

Daniel FAIVRE



Schuyler Erle wrote:

>* On 29-Mar-2005 at  2:09AM PST, Aaron Craig said:
>
>
>>Is it possible to get a tooltip to pop up with some text taken from a
>>field in my Postgis database when the user puts her mouse over an icon
>>in a layer?
>>
>>
>
>There's nothing built in to MapServer that I know of. I'm working on a
>solution that uses Python MapScript and Cheetah templates to output an
>image map that could be used to add JS mouseover hooks. The heart of
>the code looks something like this:
>
>    def points_to_pixels (self, pts):
>        """The points_to_pixels() method takes a list of (point, link)
>        tuples, and returns a list of dicts. Each entry in the returned dict
>        has an 'x' and 'y' key representing the point's location in pixel
>        space, and 'url' key containing the link."""
>
>        map = self.map
>        result = []
>        width  = map.extent.maxx - map.extent.minx
>        height = map.extent.maxy - map.extent.miny
>        x_res = map.width / width
>        y_res = map.height / height
>
>        """Each point is converted to pixel space by subtracting the
>        coordinate from the spatial map edge, multiplying by the pixel
>        resolution (in pixels/spatial unit), and rounding to the nearest
>        integer. If the point would wind up off the map, it is omitted from
>        the returned list. Also, points without matching links (e.g.  the link
>        evaluates to false) are discarded."""
>
>        for pt, url in pts:
>            if not url:
>                continue
>            x = int((pt.x - map.extent.minx) * x_res + .5)
>            y = int((map.extent.maxy - pt.y) * y_res + .5)
>            if x >= 0 and x <= map.width and \
>               y >= 0 and y <= map.height:
>                result.append({ 'x': x, 'y': y, 'url': url })
>
>        return result
>
>The result list gets passed to a Cheetah template to generate the
>actual image map. I hope the code is reasonably self-explanatory. The
>project I'm working on is something of a port of the subset of
>mapserv's functionality to Python MapScript in order to make things
>like this possible. I'll post to the list when the (GPL'ed) code is
>available.
>
>SDE
>
>



More information about the mapserver-users mailing list