Bonjour, je vous présente mon script qui permet de récupérer les données de localisation et ensuite de les traiter via un script php pour placer un Maker sur une carte. tout se passe bien sur Androïde mais sur certain iphone cela ne fonctionne pas. Je ne Trouve pas la solution et viens donc vers vous pour avoir votre avis sur cette problématique. Merci de votre aide


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

  <title>HTML5 : G?olocalisation avec carte Google Maps</title>
  <meta name="viewport" content="user-scalable=no,width=device-width">
  <meta charset="utf-8">
</head>
<body>
<br>
<br>
<br>
<big style="font-weight: bold;"></big></div>
<br>
<br>
<br>
<br>
<br>

<br>
<center><?php echo("Wait !");?></center>

<script>
if(navigator.geolocation) {
// Fonction de callback en cas de succ?s
function affichePosition(position) {
window.location.href = "matrice.php?latitude=" + position.coords.latitude + "&longitude=" + position.coords.longitude;
var infopos = "Votre position: <br>";
infopos += "Latitude : "+position.coords.latitude +"<br>";
infopos += "Longitude: "+position.coords.longitude+"<br>";
}
// Fonction de callback en cas d?erreur
function erreurPosition(error) {
var info = "Erreur lors de la g?olocalisation : ";
switch(error.code) {
case error.TIMEOUT:
info += "Timeout !";
break;
case error.PERMISSION_DENIED:
info += "Vous n?avez pas donn? la permission";
break;
case error.POSITION_UNAVAILABLE:
info += "La position n?a pu ?tre d?termin?e";
break;
case error.UNKNOWN_ERROR:
info += "Erreur inconnue";
break;
}
}
navigator.geolocation.getCurrentPosition(affichePosition,erreurPosition);
} else {
alert("Ce navigateur ne supporte pas la g?olocalisation");
}
</script>
</body>
</html>
Modérateur
Bonjour,

Si le problème ne survient que sur certains iphones et par sur tous, il faudrait déjà déterminer sur ces iphones ce qui bloque le script (une configuration de l'utilisateur ? l'utilisateur a-t-il bloqué la géo-localisation ?).

Il se peut aussi que ce soit un problème de serveur sécurisé ou pas. La page est-elle en http ou en https (ça marche peut-être avec de vieux iphones si c'est en http) ?

Enfin, il me semble que tes fonctions affichePosition() et erreurPosition() vont, en l'état, forcément mal marcher quelque soit l'appareil. Par exemple, erreurPosition() n'affiche rien et ne met rien dans la console. J'imagine qu'il ne s'agit que d'extraits.

Amicalement,
Bonjour parsimonhi,

toutes les pages sont en https, cela fonctionne très bien sur Androïde, IPhonec10, Samsung, mais sur l'iphone6 rien à faire. Ça configuration semble correcte d'après lui, je suis dubitatif. Merci d'avoir répondu.

cordialement
Modérateur
Hello,
Si c'est un cas unique et que tu n'as pas encore reproduit sur un autre device similaire, j'opterais pour une mauvaise config de l'utilisateur… Fait peut-être le test avec une page similaire à la tienne qui requière aussi de la géoloc (et qui utilise ± les mêmes méthodes) Smiley smile
Modérateur
Bonjour,

Il part très probablement en erreur, mais ton code ne permet pas de l'afficher.

Voici mon code de test (j'ai rajouté un alert(info) et quelques bricoles pour qu'une éventuelle erreur soit affichée) :
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>

  <title>HTML5 : Géolocalisation avec carte Google Maps</title>
  <meta name="viewport" content="user-scalable=no,width=device-width">
  <meta charset="utf-8">
</head>
<body>
<br>
<br>
<br>
<big style="font-weight: bold;"></big></div>
<br>
<br>
<br>
<br>
<br>

<br>
<center><?php echo("Wait !");?></center>

<script>
if(navigator.geolocation)
{
	// Fonction de callback en cas de succès
	function affichePosition(position)
	{
		//window.location.href = "matrice.php?latitude=" + position.coords.latitude + "&longitude=" + position.coords.longitude;
		var infopos = "Votre position: <br>";
		infopos += "Latitude : "+position.coords.latitude +"<br>";
		infopos += "Longitude: "+position.coords.longitude+"<br>";
		alert(infopos);
	}
	// Fonction de callback en cas d'erreur
	function erreurPosition(error)
	{
		var info = "Erreur lors de la géolocalisation : ";
		if(error&&error.code)
		{
			switch(error.code) {
				case error.TIMEOUT:
					info += "Timeout !";
					break;
				case error.PERMISSION_DENIED:
					info += "Vous n'avez pas donné la permission";
					break;
				case error.POSITION_UNAVAILABLE:
					info += "La position n'a pu être déterminée";
					break;
				case error.UNKNOWN_ERROR:
					info += "Erreur inconnue";
					break;
				default: info += "Autre erreur";
			}
			alert(info);
		}
		else
		{
			info += "Autre autre erreur";
			alert(info);
		}
	}
	navigator.geolocation.getCurrentPosition(affichePosition,erreurPosition);
}
else
{
	alert("Ce navigateur ne supporte pas la géolocalisation");
}
</script>
</body>
</html>

Amicalement,
Bonsoir, ok merci je le fais tester par l 'utilisateur a problèmes et je reviens donner les résultats ici
Bonjour,
Merci à tous , le problème était bien du a une erreur de configuration du tel maintenant cela fonctionne . Je vous laisse le lien vers le script de localisation qui est la base de fonctionnement du site ( je précise ce site n'est pas un site commercial ). voici le lien
https://www.eustormchasers.com/

Cordialement,