peplum37
Messages postés2Date d'inscriptionjeudi 14 décembre 2000StatutMembreDernière intervention20 juillet 2010
-
14 juil. 2010 à 16:26
peplum37
Messages postés2Date d'inscriptionjeudi 14 décembre 2000StatutMembreDernière intervention20 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"
peplum37
Messages postés2Date d'inscriptionjeudi 14 décembre 2000StatutMembreDernière intervention20 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.