Google Maps et Safari [Résolu]

Signaler
Messages postés
2
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
20 juillet 2010
-
Messages postés
2
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
20 juillet 2010
-
bonjour,
désolé pour la double question, mais je m'étais trompé de forum.

j'utilisa la géolocalisation de google maps V3, tout est ok, sauf avec Safari
car la requète de géolocalisation ne s'effectue qu'une fois (ne fait rien si on recharge la page)
code
// -----------------------------------------------
//    Module de géolocalisation
//------------------------------------------------
var directionDisplay;
var directionsService = new google.maps.DirectionsService();
var geocodeur = new google.maps.Geocoder();
var map;
var myLatlng;
var haight;

function afficher() {
        directionsDisplay = new google.maps.DirectionsRenderer();
          var myOptions = {
            zoom: 12,
            center: haight,
            mapTypeId: google.maps.MapTypeId.ROADMAP
            }
        map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
        directionsDisplay.setMap(map);
        var marker = new google.maps.Marker({
            position: haight,
            map: map,
            title:"Salle de Danse"
            });
}

function initialize() {

    haight = new google.maps.LatLng(document.getElementById( 'latitude' ).value,document.getElementById( 'longitude' ).value);
    Nom = navigator.appName;
    Safari(Nom 'Netscape') ? 1:0;
    Opera (Nom 'Opera') ? 1:0;
    ie (Nom 'Microsoft Internet Explorer') ? 1:0;

    if (!ie && !Opera)
    {
    if (navigator.geolocation ) {
        navigator.geolocation.getCurrentPosition(
        function(position)
        {
            myLatlng = new google.maps.LatLng(position.coords.latitude, position.coords.longitude);
        },
        function (msg) { alert( "Localisation impossible", {maximumAge:Infinity, timeout:0} ); }
        );
        }
            document.getElementById( 'demande' ).style.display = 'none';
            document.getElementById( 'auto' ).style.display = '';
            afficher();
      }
        else
      {
            document.getElementById( 'demande' ).style.display = '';
            document.getElementById( 'auto' ).style.display = 'none';
            afficher();
      }
 }
 function rechercher() {

       var vous=document.getElementById( "vous" );
       adresse=vous.value;
       if (geocodeur) {
            // effectuer une requete de geocodage
            geocodeur.geocode({'address': adresse}, function(resultats, status) {
            myLatlng = resultats[0].geometry.location;

            if (status == google.maps.GeocoderStatus.OK) { //requete reussie
                calcRoute();
                } else { //il y'a eu un problem lors de la requete
                    alert("Une erreur s'est produite : " + status);
                }
            });
        }

    }
function calcRoute() {

        if (Safari) {
//           alert('1 '+myLatlng);
            }

        var selectedMode = "DRIVING";
        var request = {
            origin:      myLatlng,
            destination: haight,
            travelMode: google.maps.DirectionsTravelMode[selectedMode],
            unitSystem: google.maps.DirectionsUnitSystem.METRIC
            };
        directionsService.route(request, function(response, status) {
            if (status == google.maps.DirectionsStatus.OK) {
                directionsDisplay.setDirections(response);
            }
            });
}



la fonction navigator.geolocation.getCurrentPosition ne se fait qu'une mois, si bien qu'après rechargement de la page la variable myLatlng est "undefined"

merci pour un conseil

2 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
14
Bonjour,
pourquoi ces lignes
Safari(Nom 'Netscape') ? 1:0;
Opera (Nom 'Opera') ? 1:0;
ie (Nom 'Microsoft Internet Explorer') ? 1:0;

tu utilises navigator.geolocation,pas sur que tu retrouves cette propriété dans le navigateur

Je te livre une source d'inspiration GÉOLOCALISATION D'UNE ADRESSE
;O)
Messages postés
2
Date d'inscription
jeudi 14 décembre 2000
Statut
Membre
Dernière intervention
20 juillet 2010

petole team :
d'abord merci d'avoir regardé mon problème.
l'identification du navigateur me sert à saisir l'adresse dans un formulaire si le navigateur ne géolocalise pas automatiquement (ie opera).
en fait j'ai résolu mon problème en créant un cookie sous Safari car il ne géolocalise que la première fois.