How To Get the Attributes for the Map Feature That Has Just Been Clicked On
After the map has loaded, add a mouse down handler to the map element. In the handler use the retrieve API to get the current feature.
<html>
<head>
<script type="text/javascript" src="map_data/swfobject.js"></script>
<script type="text/javascript" src="map_data/avenza.js"></script>
<script type="text/javascript">
var theMap = AVENZA.embedViewer("map", "750", "500",
{
baseURL:"map_data/",
loadedCB: onMapLoaded,
flashSecuritySandbox: AVENZA.AUTO_SANDBOX
}
);
function onMapLoaded() {
var m = theMap.element();
if (m) {
if (window.addEventListener) {
m.addEventListener("mousedown", onMouseClick, false);
}
else if (window.attachEvent) { // IE
m.attachEvent("onmousedown", onMouseClick);
}
}
}
function onMouseClick(event) {
alert(theMap.retrieve(AVENZA.FEATURE).attributes.STATE_NAME);
}
</script>
</head>
<body>
<div style="position:relative">
<div id="map">
</div>
</div>
</body>
</html>
It's important to use the element() function as opposed to document.getElementById() to get a reference to the map element. The way that the map element is added to the page will change depending on the browser type, element() ensures that the correct reference will be returned..
You can see a live example here.
