37,99 → 37,107 |
// Variables globales |
var map = null; |
var geocoder = null; |
var lat = document.getElementById("latitude"); |
var lon = document.getElementById("longitude"); |
var marker = null; |
var flat = null; |
var flon = null; |
|
function load() { |
if (GBrowserIsCompatible()) { |
flat = document.getElementById("latitude"); |
flon = document.getElementById("longitude"); |
|
map = new GMap2(document.getElementById("map"), G_HYBRID_MAP); |
var optionsGoogleMapsv3 = { |
// On centre la carte sur le languedoc roussillon |
center: new google.maps.LatLng(43.84245116699036, 3.768310546875), |
zoom: 7, |
mapTypeId: google.maps.MapTypeId.G_HYBRID_MAP, |
mapTypeControl: true, |
scaleControl: true |
}; |
map = new google.maps.Map(document.getElementById("map"), optionsGoogleMapsv3); |
|
map.addControl(new GSmallMapControl()); |
map.addControl(new GMapTypeControl()); |
map.addControl(new GScaleControl()); |
map.enableContinuousZoom(); |
|
// On centre la carte sur le languedoc roussillon |
center = new GLatLng(43.84245116699036, 3.768310546875); |
map.setCenter(center, 7);map.setMapType(G_HYBRID_MAP); |
//marker = new GMarker(center, {draggable: true}) ; |
GEvent.addListener(map, "click", function(marker, point) { |
if (marker) { |
map.removeOverlay(marker); |
var lat = document.getElementById("latitude"); |
var lon = document.getElementById("longitude"); |
lat.value = ""; |
lon.value = ""; |
} else { |
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 = new GMarker(point, {draggable: true}) ; |
GEvent.addListener(marker, "dragend", function () { |
coordMarker = marker.getPoint() ; |
var lat = document.getElementById("latitude"); |
var lon = document.getElementById("longitude"); |
lat.value = coordMarker.lat(); |
lon.value = coordMarker.lng(); |
marker = event.overlay; |
marker = new google.maps.Marker({ |
position: event.latLng, |
draggable: true, |
map: map |
}); |
map.addOverlay(marker); |
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 GLatLng('.$formtemplate->getElementValue('latitude').', '.$formtemplate->getElementValue('longitude').'); |
marker = new GMarker(point, {draggable: true}); |
map.addOverlay(marker);' ; |
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 GClientGeocoder(); |
} |
$script .= 'geocoder = new google.maps.Geocoder(); |
}; |
function showAddress() { |
var adresse = document.getElementById("bf_adresse").value ; |
var ville = ""; |
if (document.getElementById("bf_ville")) { |
var ville = document.getElementById("bf_ville").value ; |
} else { |
var 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; |
var pays = document.getElementById("liste30").options[selectIndex].text ; |
pays = document.getElementById("liste30").options[selectIndex].text ; |
} else { |
var pays = document.getElementById("bf_pays").value; |
pays = document.getElementById("bf_pays").value; |
} |
var address = adresse + \' \' + \' \' + cp + \' \' + ville + \' \' +pays ; |
if (geocoder) { |
geocoder.getLatLng( |
address, |
function(point) { |
if (!point) { |
geocoder.geocode({ |
address: address |
}, function(result, status) { |
if (status != google.maps.GeocoderStatus.OK) { |
alert(address + " not found"); |
} else { |
map.setCenter(point, 13); |
var marker = new GMarker(point, {draggable: true}); |
GEvent.addListener(marker, "dragend", function () { |
coordMarker = marker.getPoint() ; |
var lat = document.getElementById("latitude"); |
var lon = document.getElementById("longitude"); |
lat.value = coordMarker.lat(); |
lon.value = coordMarker.lng(); |
marker.setMap(null); |
marker = null; |
//map.setCenter(point, 13); |
map.fitBounds(result[0].geometry.viewport); |
marker = new google.maps.Marker({ |
position: result[0].geometry.location, |
draggable: true, |
map: map |
}); |
|
map.addOverlay(marker); |
setLatLonForm(marker) |
marker.openInfoWindowHtml(address+ "'.BAZ_GOOGLE_MSG.'"); |
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.getPoint() ; |
var lat = document.getElementById("latitude"); |
var lon = document.getElementById("longitude"); |
lat.value = coordMarker.lat(); |
lon.value = coordMarker.lng(); |
coordMarker = marker.getPosition() ; |
flat.value = coordMarker.lat(); |
flon.value = coordMarker.lng(); |
} |
'; |
|