Google Maps et Safari

Résolu
peplum37 Messages postés 2 Date d'inscription jeudi 14 décembre 2000 Statut Membre Dernière intervention 20 juillet 2010 - 14 juil. 2010 à 16:26
peplum37 Messages postés 2 Date d'inscription jeudi 14 décembre 2000 Statut Membre Dernière intervention 20 juillet 2010 - 20 juil. 2010 à 08:57
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

PetoleTeam Messages postés 3426 Date d'inscription lundi 26 décembre 2005 Statut Membre Dernière intervention 14 janvier 2011 17
19 juil. 2010 à 19:08
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)
3
peplum37 Messages postés 2 Date d'inscription jeudi 14 décembre 2000 Statut Membre Dernière intervention 20 juillet 2010
20 juil. 2010 à 08:57
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.
0
Rejoignez-nous