var map = null; var previousMarker = null; var addedMarker = null; var bsPoints1 = []; var bsPoints2 = []; var bsPoints3 = []; var mm; //init icons var imgMarker = '/noRW_layout/googlemaps/icons/marker.png'; //var imgMarkerShadow = 'http://labs.google.com/ridefinder/images/mm_20_shadow.png'; var imgMarkerPevneMisto = '/noRW_layout/googlemaps/icons/icon1.png'; var imgMarkerAkce = '/noRW_layout/googlemaps/icons/icon2.png'; var imgMarkerVlak = '/noRW_layout/googlemaps/icons/icon3.png'; var iconPevneMisto = new GIcon(); iconPevneMisto.image = imgMarkerPevneMisto; //iconPevneMisto.shadow = imgMarkerShadow; iconPevneMisto.iconSize = new GSize(28, 33); //iconPevneMisto.shadowSize = new GSize(22, 20); iconPevneMisto.iconAnchor = new GPoint(14, 33); iconPevneMisto.infoWindowAnchor = new GPoint(14, 33); iconAkce = new GIcon(iconPevneMisto, imgMarkerAkce); iconVlak = new GIcon(iconPevneMisto, imgMarkerVlak); GMarker.prototype.hide = function () { if (this.getPoint().lat() < 90) { try { this.savePoint = this.getPoint(); this.setPoint(new GLatLng(90, 0)); } catch(e) {} } } GMarker.prototype.show = function () { if (this.getPoint().lat() == 90) { if (this.savePoint) { try { this.setPoint(this.savePoint); this.savePoint = null; } catch(e) {} } } } function createMarker(point, label, html, icontype) { //icon var icon; switch(icontype) { case "1": icon = iconPevneMisto; break; case "2": icon = iconAkce; break; case "3": icon = iconVlak; break; default: icon = iconPevneMisto; break; } var marker = new GMarker(point, {icon:icon, title:label}); GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); }); return marker; } function gmaps() { if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById('map')); //init coordinates if ((lastCoords == undefined) || (lastCoords == "")) { map.setCenter(new GLatLng(49.868939,15.300608), 7); } else { var p = lastCoords.split(","); map.setCenter(new GLatLng(p[0], p[1]), 15); if (coordsAdded) { var markerAdded = createMarker(new GLatLng(p[0], p[1]), addedCaption, addedHtml, addedType); map.addOverlay(markerAdded); } else { markerToMap(new GLatLng(p[0], p[1])); } } //init map map.addControl(new GOverviewMapControl(new GSize(90, 90))); map.addControl(new GMapTypeControl(1)); map.addControl(new GLargeMapControl()); if (!bsAddPoint) { // Read the data from example.xml GDownloadUrl("/noRW_layout/betlemske_svetlo/jspointsdata.xml?1265560605", function(doc) { var xmlDoc = GXml.parse(doc); var markers = xmlDoc.documentElement.getElementsByTagName("marker"); //window.alert(markers.length); var markersDest; for (var i = 0; i < markers.length; i++) { // obtain the attribues of each marker var lat = parseFloat(markers[i].getAttribute("lat")); var lng = parseFloat(markers[i].getAttribute("lng")); var point = new GLatLng(lat,lng); var html = GXml.value(markers[i].getElementsByTagName("infowindow")[0]); var label = markers[i].getAttribute("label"); var type = markers[i].getAttribute("type"); // create the marker var marker = createMarker(point, label, html, type); markersDest = getMarkersArrayByType(type); markersDest.push(marker); } mm = new GMarkerManager(map, { borderPadding :1 }); mm.addMarkers(bsPoints1, 6, 17); mm.addMarkers(bsPoints2, 6, 17); mm.addMarkers(bsPoints3, 6, 17); mm.refresh(); }); } } // ====== Restricting the range of Zoom Levels ===== // Get the list of map types var mt = map.getMapTypes(); // Overwrite the getMinimumResolution() and getMaximumResolution() methods for ( var i = 0; i < mt.length; i++) { mt[i].getMinimumResolution = function() { return 6; } } // pro pridani bodu if (bsAddPoint) { if (!coordsAdded) { var mouseClick = GEvent.addListener(map, 'click', function(overlay, latlng) { if (latlng) { markerToMap(latlng); } }); } } } function markerToMap(latlng) { if (previousMarker != null) { map.removeOverlay(previousMarker); } var marker = new GMarker(latlng, { draggable :true, autoPan :false }); map.addOverlay(marker); marker.setImage(imgMarker); previousMarker = marker; document.getElementById('edtGPScoord').setAttribute("value", marker.getPoint().toUrlValue()); GEvent.addListener(marker, 'dragend', function() { document.getElementById('edtGPScoord').setAttribute( "value", marker.getPoint().toUrlValue()); }); } function getLocation() { var search = document.getElementById('search').value; if (search == "") { window.alert("Zadejte prosím místo k hledání."); return false; } search = search + ", czech republic"; var geo = new GClientGeocoder(); geo.getLocations(search, function(result) { if (result.Status.code == G_GEO_SUCCESS) { map.clearOverlays(); var p = result.Placemark[0].Point.coordinates; place(p[1], p[0]); } else if (result.Status.code == G_GEO_UNKNOWN_ADDRESS) { window.alert("Adresa nenalezena, zkuste to prosím znovu."); } }); return false; } function place(lat, lng) { var point = new GLatLng(lat, lng); map.setCenter(point, 14); // map.addOverlay(new GMarker(point)); } // == shows all markers of a particular category, and ensures the checkbox is checked == function showMarkers(type) { var markers = getMarkersArrayByType(type); for (var i=0; i