var map = null; var geocoder = null; var val_address = null; var marker = null; var zoom = 14; var mtype = G_HYBRID_MAP; var Lat=48.852909; var Long=2.33697; var o=false; var oe='utf-8'; var reasons=[]; reasons[G_GEO_SUCCESS] = "Adresse trouvée"; reasons[G_GEO_MISSING_ADDRESS] = "Adresse incomplète"; reasons[G_GEO_UNKNOWN_ADDRESS] = "Adresse inconnue"; reasons[G_GEO_UNAVAILABLE_ADDRESS]= "Adresse invalide"; reasons[G_GEO_BAD_KEY] = "Bad Key: The API key is either invalid or does not match the domain for which it was given"; reasons[G_GEO_TOO_MANY_QUERIES] = "Too Many Queries: The daily geocoding quota for this site has been exceeded"; reasons[G_GEO_SERVER_ERROR] = "Server error: The geocoding request could not be successfully processed"; function load(oo) { if(oo) o=true; if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); if(o) map.addControl(new GSmallMapControl()); else map.addControl(new GLargeMapControl()); map.addControl(new GMapTypeControl()); if(!o) map.addControl(new GOverviewMapControl()); geocoder = new GClientGeocoder(); var center = new GLatLng(Lat, Long); map.setCenter(center, zoom, mtype); initMarker(center); map.addOverlay(marker); GEvent.addListener(map, "maptypechanged", saveView); GEvent.addListener(map, "zoomend", saveView); } } function initMarker(center){ var demo = 0; marker = new GMarker(center, {draggable:!demo}); } function showAddress(address) { if(geocoder) { val_address = address; geocoder.getLocations(val_address, setMarker); } } function setMarker(points) { if (points.Status.code == G_GEO_SUCCESS) { if(marker!=null) map.removeOverlay(marker); if(o) return; if(points.Placemark.length>1) { var loc = "Plusieurs adresses trouvées:
"; for(var i=0; i'+ points.Placemark[i].address +"
"; } $("#locations").html(loc); $("#locations").slideToggle("fast"); } var pm=Placemark=points.Placemark[0]; var p =pm.Point.coordinates; var ad=pm.AddressDetails; var cc; try{cc=ad.Country.CountryNameCode;} catch(e){} var cn; try{cn=ad.Country.CountryName;} catch(e){} var saa; try{saa=ad.Country.AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName;}catch(e){} var cp; try{cp=ad.Country.AdministrativeArea.SubAdministrativeArea.Locality.PostalCode.PostalCodeNumber;}catch(e){} var ln; try{ln=ad.Country.AdministrativeArea.SubAdministrativeArea.Locality.LocalityName;}catch(e){} var st; try{st=ad.Country.AdministrativeArea.SubAdministrativeArea.Locality.Thoroughfare.ThoroughfareName;}catch(e){} var tmp_adr = ""; if (st) tmp_adr+=st; tmp_adr+="\n"; if (cp) tmp_adr+=cp; if (ln){ if (cp) tmp_adr+=" "; tmp_adr+=ln; } tmp_adr+=", "+cn; oe='utf-8'; val_address=tmp_adr; marker = new GMarker(new GLatLng(p[1],p[0]), {draggable: true}); map.addOverlay(marker); map.setCenter(new GLatLng(p[1],p[0]), zoom); GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml("Placez le curseur sur votre bâtiment.
A ce niveau, la précision est peu importante.
" + marker.getPoint() + ""); } ); GEvent.addListener(marker, "dragstart", function() { map.closeInfoWindow(); } ); GEvent.addListener(marker, "dragend", function() { var pt= marker.getPoint(); Lat=pt.lat();Long=pt.lng(); $.get("indice_ajax.php", { adr: val_address, lat:Lat, lng:Long, oe:oe } ); } ); var pt= marker.getPoint(); Lat=pt.lat();Long=pt.lng(); $.get("indice_ajax.php", { adr: tmp_adr, lat: Lat, lng: Long, cp:cp, cc:cc, saa:saa, oe:oe } ); } else { var reason="Code "+points.Status.code; if (reasons[points.Status.code]) reason = reasons[points.Status.code] alert('L\'adresse "'+val_address+'" est introuvable (' + reason+').\r\nEssayez de saisir une adresse voisine ...'); } } function saveView() { if(marker!=null) map.setCenter(marker.getPoint()); zoom = map.getZoom(); var mt = map.getCurrentMapType(); switch (mt){ case G_SATELLITE_MAP:mtype="G_SATELLITE_MAP";break; case G_NORMAL_MAP:mtype="G_NORMAL_MAP";break; case G_HYBRID_MAP:mtype="G_HYBRID_MAP";break; } $.get("indice_ajax.php", { zoom: map.getZoom(), mtype: mtype } ); } function setAngle(a) { a = parseInt(a)+180; $("#angle").val(a); $.get("indice_ajax.php", { ang: a } ); } var Angle; var Tid; function UpdateFlash(){ clearTimeout(Tid); var flash = document.getElementById("boussole"); var data=flash.GetVariable("Data"); if (!data){ Tid=setTimeout("UpdateFlash()", 25); } else { console.log("UpdateFlash", Angle); flash.SetVariable('Data.boussoleRotation', Angle); } } function setJSAngle(a) { $.get("indice_ajax.php", { ang: a } ); a = parseInt(a)-180; Angle=a; Tid=setTimeout("UpdateFlash()", 25); }