// JavaScript Document // Call this function when the page has been loaded /* var map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(43.659924074789075, 7.2015380859375), 9); map.addControl(new GSmallZoomControl()); var tooltip = document.createElement("span"); map.getPane(G_MAP_FLOAT_PANE).appendChild(tooltip); tooltip.style.visibility = "hidden"; var gicons = []; var markersArray = []; var pointsArray = []; var permitLeft = true; gicons["1"] = new GIcon(); gicons["1"].image = "http://labs.google.com/ridefinder/images/mm_20_red.png"; gicons["1"].iconSize = new GSize(12, 20); gicons["1"].iconAnchor = new GPoint(6, 20); gicons["1"].infoWindowAnchor = new GPoint(5, 1); */ var map = false; var tooltip = false; var permitLeft = true; var gicons = []; var markersArray = []; var pointsArray = []; gicons["1"] = new GIcon(); gicons["1"].image = "http://labs.google.com/ridefinder/images/mm_20_red.png"; gicons["1"].iconSize = new GSize(12, 20); gicons["1"].iconAnchor = new GPoint(6, 20); gicons["1"].infoWindowAnchor = new GPoint(5, 1); function showMap (opt) { map = new GMap2(document.getElementById("map")); map.setCenter(new GLatLng(opt.lat, opt.lng), opt.zoom); //43.659924074789075, 7.2015380859375 map.addControl(new GSmallZoomControl()); tooltip = document.createElement("span"); map.getPane(G_MAP_FLOAT_PANE).appendChild(tooltip); tooltip.style.visibility = "hidden"; } function createMarker (opt) { var point = new GLatLng(opt.lat, opt.lng); var marker = new GMarker(point, gicons["1"]); markersArray[opt.id] = marker; pointsArray[opt.id] = point; if (opt.tooltip) { marker.tooltip = '
'+opt.tooltip+'
'; GEvent.addListener(marker,"mouseover", function() { showTooltip(marker); }); GEvent.addListener(marker,"mouseout", function() { tooltip.style.visibility = "hidden" }); } map.addOverlay(marker); } function showTooltip(marker) { tooltip.innerHTML = marker.tooltip; tooltip.style.display = "block"; tooltip.style.position = "absolute"; tooltip.style.top = "10px"; marker.ttWidth = 150; //marker.offsetWidth; // marker.ttHeight = 30; // marker.offsetHeight; // //marker.map = map; setTooltipPosition(marker); tooltip.style.visibility = "visible"; } function latLongToPixel( coord, zoom) { // map, return map.fromLatLngToDivPixel(coord); } function setTooltipPosition(marker) { var gap = 5; //var map = theObj.map; var pt = marker.getPoint(); var ttPos = latLongToPixel(pt, map.getZoom()); // map, var theIcon = marker.getIcon(); var rightSide = true; var bounds = map.getBounds(); var boundsSpan = bounds.toSpan(); var longSpan = boundsSpan.lng(); var mapWidth = map.getSize().width; var tooltipWidthInDeg = (marker.ttWidth + theIcon.iconSize.width + 6) / mapWidth * longSpan; if (parseFloat(pt.lng()) + tooltipWidthInDeg > bounds.getNorthEast().lng() && permitLeft) { rightSide = false; } ttPos.y -= Math.floor(theIcon.iconAnchor.y/2); ttPos.y -= Math.floor(marker.ttHeight/2); delta = (theIcon.iconSize.width - theIcon.iconAnchor.x) + gap; if (rightSide) ttPos.x += delta; else ttPos.x -= delta marker.rightSide = rightSide; marker.ttLeft = ttPos.x; marker.ttTop = ttPos.y; if (tooltip) { if (rightSide) { tooltip.style.left = ttPos.x + "px"; tooltip.style.right = null; } else { tooltip.style.left = null; tooltip.style.right = -ttPos.x + "px"; } tooltip.style.top = ttPos.y + "px"; } } function onMarker (opt) { if (opt.create_marker == "true" && !markersArray[opt.id]) { createMarker ({lat: geo_data[opt.id].lat, lng: geo_data[opt.id].lng, id: opt.id, tooltip: geo_data[opt.id].com}); } if (markersArray[opt.id]) { markersArray[opt.id].setImage("http://www.google.com/mapfiles/markerA.png"); if (opt.pan == "true") { map.panTo(pointsArray[opt.id]); } if (opt.tooltip == "true") { showTooltip(markersArray[opt.id]); } } } function offMarker (opt) { if (markersArray[opt.id]) { markersArray[opt.id].setImage("http://labs.google.com/ridefinder/images/mm_20_red.png"); if (opt.tooltip == "true") { tooltip.style.visibility = "hidden"; } } if (opt.remove_marker == "true" && markersArray[opt.id]) { map.removeOverlay(markersArray[opt.id]); markersArray[opt.id] = ""; } } function showAllOnMap() { $.each(geo_data, function(i, val) { createMarker ({lat: val.lat, lng: val.lng, id: i, tooltip: val.com}); }); } function getLatLng() { $("#LatLng").html(""+ map.getCenter() +""); }