/** * @file * Common marker highlighting routines. */ /** * Highlights marker on rollover. * Removes highlight on previous marker. * * Creates a "circle" using 20-sided GPolygon at the given point * Circle polygon object is global variable as there is only one highlighted marker at a time * and we want to remove the previously placed polygon before placing a new one. * * Original code "Google Maps JavaScript API Example" */ highlightMarker = function (map, currentMarker, highlightID, color) { var markerPoint = currentMarker.marker.getPoint(); var polyPoints = Array(); var mapNormalProj = G_NORMAL_MAP.getProjection(); var mapZoom = map.getZoom(); var clickedPixel = mapNormalProj.fromLatLngToPixel(markerPoint, mapZoom); var polySmallRadius = 20; var polyNumSides = 20; var polySideLength = 18; for (var a = 0; a < (polyNumSides + 1); a++) { var aRad = polySideLength * a * (Math.PI / 180); var polyRadius = polySmallRadius; var pixelX = clickedPixel.x + polyRadius * Math.cos(aRad); var pixelY = clickedPixel.y + polyRadius * Math.sin(aRad); var polyPixel = new GPoint(pixelX, pixelY); var polyPoint = mapNormalProj.fromPixelToLatLng(polyPixel, mapZoom); polyPoints.push(polyPoint); } // Using GPolygon(points, strokeColor?, strokeWeight?, strokeOpacity?, fillColor?, fillOpacity?) map.highlightID = new GPolygon(polyPoints, color, 2, 0, color, 0.5); map.addOverlay(map.highlightID); }; unHighlightMarker = function (map, currentMarker, highlightID) { if (map.highlightID) { map.removeOverlay(map.highlightID); delete map.highlightID; } };