Est-ce que quelqu'un sait si l'iPhone prend en charge ou prendra bientôt en charge la spécification de géolocalisation W3C ?
Je cherche à créer une application pour les utilisateurs mobiles, mais plutôt que de passer du temps à développer des applications pour chaque plate-forme différente (iPhone, Android, etc ...), je préférerais de loin créer une application web qui utilise le Norme W3C.
Ce code a fonctionné pour moi - sur le navigateur Web de l'iPhone Safari et comme bonus supplémentaire, il a même fonctionné avec FireFox 3.5 sur mon ordinateur portable! La spécification de l'API de géolocalisation fait partie des normes du consortium W3 Mais attention: elle n'a pas encore été finalisée.
(source: bemoko.com )
(source: bemoko.com )
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Geolocation API Demo</title>
<meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" name="viewport"/>
<script>
function successHandler(location) {
var message = document.getElementById("message"), html = [];
html.Push("<img width='256' height='256' src='http://maps.google.com/maps/api/staticmap?center=", location.coords.latitude, ",", location.coords.longitude, "&markers=size:small|color:blue|", location.coords.latitude, ",", location.coords.longitude, "&zoom=14&size=256x256&sensor=false' />");
html.Push("<p>Longitude: ", location.coords.longitude, "</p>");
html.Push("<p>Latitude: ", location.coords.latitude, "</p>");
html.Push("<p>Accuracy: ", location.coords.accuracy, " meters</p>");
message.innerHTML = html.join("");
}
function errorHandler(error) {
alert('Attempt to get location failed: ' + error.message);
}
navigator.geolocation.getCurrentPosition(successHandler, errorHandler);
</script>
</head>
<body>
<div id="message">Location unknown</div>
</body>
</html>
Vous pouvez maintenant obtenir l'emplacement des API Javascript dans le navigateur Safari après la version iPhone 3.0 - nous avons créé un exemple de travail @ http://blog.bemoko.com/2009/06/17/iphone-30- geolocation-javascript-api /
Depuis iPhone OS 3.0 Safari prend en charge la localisation géographique. Voir: Bibliothèque de référence Safari: Obtenir des emplacements géographiques De l'autre côté, la spécification de l'API W3C Geo est toujours en projet.
J'ai mis à jour le code de MyWhirledView. Fonctionne très bien sur mon appareil iOS 4.3. Google n'a plus besoin d'une clé API pour accéder à sa bibliothèque de cartes statiques.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>iPhone 4.0 geolocation demo</title>
<meta content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=0;" name="viewport"/>
<script>
function handler(location) {
var message = document.getElementById("message");
message.innerHTML ="<img src='http://maps.google.com/maps/api/staticmap?center=" + location.coords.latitude + "," + location.coords.longitude + "&zoom=14&size=256x256&maptype=roadmap&sensor=false&markers=color:blue%7Clabel:ABC%7C" + location.coords.latitude + "," + location.coords.longitude + "' />";
message.innerHTML+="<p>Longitude: " + location.coords.longitude + "</p>";
message.innerHTML+="<p>Accuracy: " + location.coords.accuracy + "</p>";
message.innerHTML+="<p>Latitude: " + location.coords.latitude + "</p>";
}
navigator.geolocation.getCurrentPosition(handler);
</script>
</head>
<body>
<div id="message">Location unknown</div>
</body>
</html>
Cette lacune est la raison pour laquelle j'ai développé l'application Locatable - c'est essentiellement un plug-in pour iPhone Safari. Actuellement, il n'est disponible que pour les téléphones jailbreakés.