[Chameleon] maptips without popup
Jason Fournier
jfournier at dmsolutions.ca
Fri Jan 6 21:53:34 EST 2006
Hi Ken-ichi,
Actually, this was addressed not too long ago on the list:
============================================================
I have implemented a preconfigured maptips instance before. The following code will do what you want:
<!----------------------------------------------->
<div id="resultTips" style="position:absolute;visibility:hidden;"></div>
<cwc2 type="MapTips" visible="false" defaulttext=" " tolerance="8" maptipsdiv="ttt" label="Map Tips" styleresource="TextButtons" popupstyleresource="TextButtons" popupwidth="500" popupheight="450" image="images/icon_maptips.png" layer="Fire Stations" onmouseover="maptipsOver" onmouseout="maptipsOut" attributes="DEPT,NAME,ADDR">
<image state="normal"/>
<image state="selected"/>
<image state="hover"/>
</cwc2>
<script type="text/javascript">
// Detect if the browser is IE or not.
// If it is not IE, we assume that the browser is NS.
var IE = document.all?true:false
// Variables to hold mouse x-y
var mouseX = 0;
var mouseY = 0;
function getMouseXY(e) {
if (IE) { // grab the x-y pos.s if browser is IE
mouseX = event.clientX + document.body.scrollLeft;
mouseY = event.clientY + document.body.scrollTop;
} else { // grab the x-y pos.s if browser is NS
mouseX = e.pageX;
mouseY = e.pageY;
}
// catch possible negative values in NS4
if (mouseX < 0){mouseX = 0;}
if (mouseY < 0){mouseY = 0;}
// return
return true;
}
function maptipsOver(e, att_values, att_names)
{
// get the mouse xy
getMouseXY(e);
// position the map tip
CWCDHTML_SetLayerZOrder( 'resultTips', 999 );
CWCDHTML_SetLayerPos('resultTips', (mouseX + 10), (mouseY + 10));
// set the contents
CWCDHTML_ShowContents( 'resultTips',
'<div style="border: 2px solid #ccc; background-color: #eee; padding: 5px;">'+
'<p><strong>'+att_values[1]+'</strong></p>'+
'<p>'+att_values[2]+' ['+att_values[0]+']</p>'+
'</div>');
// show the tip
CWCDHTML_ShowLayer( 'resultTips' );
}
function maptipsOut( e, att_values, att_names)
{
// hide the tip
CWCDHTML_HideLayer( 'resultTips' );
}
</script>
<!----------------------------------------------->
In the widget declaration you have the following:
_maptipsdiv_: I *believe* this is for a static div container for the results; I didn't need it for dynamic because I wanted the tip to appear at the location of the mouse.
_layer_: name of the layer to use.
_attributes_: attributes to pass to the callback onmouseover for that location.
This could be done much cleaner and more efficiently ... at least it can give you a start.
==================================================
Best Regards,
Jason
Ken-ichi wrote:
> Hey all. Is there a way to use the MapTips widget on only one layer,
> without having a button or a popup? I would just like one layer to be
> annotated with maptips by default, so when the mouse hovers over a
> county, say, the county's name appears in a div. Can this be done?
>
> Thanks.
>
> -Ken-ichi
> _______________________________________________
> Chameleon mailing list
> Chameleon at lists.maptools.org
> http://lists.maptools.org/mailman/listinfo/chameleon
>
>
--
________________________
Jason Fournier
DM Solutions Group Inc.
jfournier at dmsolutions.ca
www.dmsolutions.ca
613.565.5056 x18
More information about the Chameleon
mailing list