var map; var markers = new Object(); function fitMap() { var bounds = new GLatLngBounds(); for (var i in markers) bounds.extend(markers[i].getPoint()); var zoomlev = Math.min(map.getBoundsZoomLevel(bounds), 12); map.setZoom(zoomlev); map.setCenter(bounds.getCenter()); var distMarkX = Math.abs(bounds.getSouthWest().x - bounds.getNorthEast().x); var distMarkY = Math.abs(bounds.getSouthWest().y - bounds.getNorthEast().y); var distMapX = Math.abs(map.getBounds().getSouthWest().x - map.getBounds().getNorthEast().x); var distMapY = Math.abs(map.getBounds().getSouthWest().y - map.getBounds().getNorthEast().y); if (distMarkX/distMapX > 0.9 || distMarkY/distMapY > 0.9) map.setZoom(zoomlev - 1); } function toggleInfo(marker, id, title, text, price, img) { var infoWin = map.getInfoWindow(); var s = ""; if (img) { s+= ""; } s += "
"; if (price > 0) s += "

$" + formatNumbers(price); s += "

" + title + "

" + text; if (price > 0 && !img) s += "

$" + formatNumbers(price); s += "

Ver anuncio
"; if (infoWin.isHidden() || !marker.getLatLng().equals(infoWin.getPoint())) marker.openInfoWindowHtml(s); else infoWin.hide(); } function highlightIcon(id) { var img = markers[id].getIcon().image; var img2 = img.substring(0, img.length - 4) + "2.png"; markers[id].setImage(img2); } function normalizeIcon(id) { markers[id].setImage(markers[id].getIcon().image); } function addMarker(icon, id, lat, lng, title, text, price, img) { var gi = new GIcon(G_DEFAULT_ICON); gi.iconSize = new GSize(20,34); gi.image = "/img/markers/" + icon + ".png"; var marker = new GMarker(new GLatLng(lat, lng), gi); map.addOverlay(marker); GEvent.addListener(marker, "click", function() { toggleInfo(marker, id, title, text, price, img); }); markers[id] = marker; } function drawMap(lat, lng) { var mapElem = document.getElementById("map"); map = new GMap2(mapElem); map.enableDoubleClickZoom(); map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); map.setCenter(new GLatLng(lat, lng), 11); }