var map = null; var markers = new Array(); var webcamids = new Array(); $(function() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("gmap")); map.addControl(new GSmallMapControl()); map.setCenter(new GLatLng(_featlat, _featlon), _featzoom); // Wire google maps listeners GEvent.addListener(map, "moveend", function() { loadMarkers(); }); GEvent.addListener(map, "click", function(overlay, point) { if (overlay) { if (overlay.myhtml) { map.openInfoWindowHtml(overlay.latlng, overlay.myhtml); } } }); // Load the markers for the first time loadMarkers(); } }); function loadMarkers() { var bounds = map.getBounds(); var zoomLevel = map.getZoom(); $.post("/map/markers", {zoom: zoomLevel, swLat: bounds.getSouthWest().lat(), swLon: bounds.getSouthWest().lng(), neLat: bounds.getNorthEast().lat(), neLon: bounds.getNorthEast().lng()}, function(data) { processMarkers(data, _smallMarkerSize); }, "json" ); } function processMarkers(webcams, markerSize) { var marker = null; var markersInView = new Array(); var idsInView = new Array(); // Loop through the new webcams for (var i = 0; i < webcams.length; i++) { var idx = markers.indexOf(webcams[i].id); if (idx == -1) { var info_html = "
";
info_html += "![]() | "; info_html += " | " + webcams[i].loc + " |