*@copyright Tela-Botanica 2000-2007 *@version $Revision: 1.1 $ // +------------------------------------------------------------------------------------------------------+ */ $script = ' // Variables globales var map = null; var geocoder = null; var marker = null; var flat = null; var flon = null; // cette fonction peut d�j� �tre pr�sente // fonction portable pour ajout de listeners function addListener(element, baseName, handler) { if (element.addEventListener) { element.addEventListener(baseName, handler, false) ; } else if (element.attachEvent) { element.attachEvent(\'on\'+baseName, handler) ; } } addListener(window,\'load\',loadMap) ; function loadMap() { flat = document.getElementById("latitude"); flon = document.getElementById("longitude"); var optionsGoogleMapsv3 = { // On centre la carte sur le languedoc roussillon center: new google.maps.LatLng(43.84245116699036, 3.768310546875), zoom: 7, mapTypeId: "OSM", mapTypeControlOptions: { mapTypeIds: ["OSM", google.maps.MapTypeId.ROADMAP, google.maps.MapTypeId.HYBRID, google.maps.MapTypeId.SATELLITE, google.maps.MapTypeId.TERRAIN] }, mapTypeControl: true, scaleControl: true }; map = new google.maps.Map(document.getElementById("map"), optionsGoogleMapsv3); map.mapTypes.set("OSM", new google.maps.ImageMapType({ getTileUrl: function(coord, zoom) { return "http://osm.tela-botanica.org/tile/" + // cache de tuiles avec nginx zoom + "/" + coord.x + "/" + coord.y + ".png"; }, tileSize: new google.maps.Size(256, 256), isPng: true, alt: "OpenStreetMap", name: "OSM", maxZoom: 19 })); var mention = \'
Tuiles : OsmFr
\'; mention += \'Carte : © les contributeurs d\\\'OpenStreetMap
\'; $("#map").append(mention); // ecouteur sur changement de fond google.maps.event.addListener( map, \'maptypeid_changed\', function() { if (map.getMapTypeId() == "OSM") { $("#origine-donnees").show(); } else { $("#origine-donnees").hide(); } }); google.maps.event.addListener(map, "click", function(event) { if (marker != null) { marker.setMap(null); marker = null; } // On ajoute un marqueur a l endroit du clic et on place les coordonnees dans les champs latitude et longitude marker = event.overlay; marker = new google.maps.Marker({ position: event.latLng, draggable: true, map: map }); google.maps.event.addListener(marker, "dragend", function () { coordMarker = marker.getPosition() ; flat.value = coordMarker.lat(); flon.value = coordMarker.lng(); }); setLatLonForm(marker); });'; if ($formtemplate->getElementValue ('latitude') != '' && $formtemplate->getElementValue('longitude') != '') { $script .= ' point = new google.maps.LatLng('.$formtemplate->getElementValue('latitude').', '.$formtemplate->getElementValue('longitude').'); marker = new google.maps.Marker({ position: point, draggable: true, map: map }); google.maps.event.addListener(marker, "dragend", function () { coordMarker = marker.getPosition() ; flat.value = coordMarker.lat(); flon.value = coordMarker.lng(); }); map.setCenter(point); ' ; } $script .= 'geocoder = new google.maps.Geocoder(); }; function showAddress() { var adresse = document.getElementById("bf_adresse").value; if (adresse == "") { return false; } var ville = ""; if (document.getElementById("bf_ville")) { ville = document.getElementById("bf_ville").value ; } var cp = document.getElementById("bf_cp_lieu_evenement").value ; var pays; if (document.getElementById("liste30")) { var selectIndex = document.getElementById("liste30").selectedIndex; pays = document.getElementById("liste30").options[selectIndex].text ; } else { pays = document.getElementById("bf_pays").value; } var address = adresse + \' \' + \' \' + cp + \' \' + ville + \' \' +pays ; if (address && geocoder) { geocoder.geocode({ address: address }, function(result, status) { if (status != google.maps.GeocoderStatus.OK) { alert(address + " not found"); } else { map.fitBounds(result[0].geometry.viewport); marker = new google.maps.Marker({ position: result[0].geometry.location, draggable: true, map: map }); google.maps.event.addListener(marker, "dragend", function () { coordMarker = marker.getPosition() ; flat.value = coordMarker.lat(); flon.value = coordMarker.lng(); }); setLatLonForm(marker); //marker.openInfoWindowHtml(address+ "'.BAZ_GOOGLE_MSG.'"); } }); } } function setLatLonForm(marker) { coordMarker = marker.getPosition() ; flat.value = coordMarker.lat(); flon.value = coordMarker.lng(); } '; /* * +--Fin du code ----------------------------------------------------------------------------------------+ * * $Log: not supported by cvs2svn $ * +-- Fin du code ----------------------------------------------------------------------------------------+ */