en noir : code obligatoire
en vert : explications
en rouge : code personnalisable
en grisé : construction d'une carte simple par défaut
<!DOCTYPE html>
<html>
<head>
<title>Carte à géolocalisation automatique en pleine fenêtre</title>
<meta name="viewport" content="initial-scale=1.0">
<meta charset="utf-8">
<style>
/* style pour carte plein écran, pour limiter voir la div "carte" */
#carte {
height: 100%;
}
html, body {
height: 100%;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<!-- ajouter dans la div après id="carte" ex: style="top:5px;left:5px;width:800px; height:600px" -->
<div id="carte" ></div>
<script>
var macarte;
function InitCarte(){
var mapOptions = {
zoom: 10 };
macarte = new google.maps.Map(document.getElementById('carte'),mapOptions);
// géolocalisation code html5
if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
var latlong = new google.maps.LatLng(position.coords.latitude,position.coords.longitude);
var infobulle = new google.maps.InfoWindow({
map: macarte,
position: latlong,
content: 'Localisation trouvée : vous êtes ici !'});
macarte.setCenter(latlong);}, function() {
handleNoGeolocation(true);
}); }
else {
// navigateur qui ne supporte pas la géolocalisation
handleNoGeolocation(false);}
}//fin InitCarte
function handleNoGeolocation(errorFlag) {
if (errorFlag) {
var contenu = 'Erreur de la Géolocation accepté?';}
else {
var contenu = 'Erreur: votre navigateur n\'accepte pas la géolocalisation.';}
var options = {
map: macarte,
position: new google.maps.LatLng(44, 0),
content: contenu
};
var infobulle = new google.maps.InfoWindow(options);
macarte.setCenter(options.position);
}
</script>
<!-- autorisation Google -->
<script src="https://maps.googleapis.com/maps/api/js?key=MaKey&callback=InitCarte"
async defer></script>
<noscript>
<p>Il semble que JavaScript soit désactivé ou qu'il ne soit pas supporté par votre navigateur.</p>
<p>Pour afficher Google Maps, activez JavaScript en modifiant les options de votre navigateur, puis essayez à nouveau.</p>
</noscript>
</body>
</html>