Geolocation API on the iPhone

Viewed 54118

Does anyone know whether the iPhone supports or will soon support the W3C Geolocation specification?

I'm looking to build an app for mobile users, but rather than spend the time developing apps for every different platform (iPhone, Android, etc...), I'd much prefer to create a web app that makes use of the W3C Standard.

9 Answers

This code worked for me -- on the iPhone web browser Safari and as an added bonus it even worked with FireFox 3.5 on my laptop! The Geolocation API Specification is part of the W3 Consortium’s standards But be warned: it hasn’t been finalized as yet.

alt text
(source: bemoko.com) alt text
(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>

This gap is why I developed the Locatable application -- it's essentially a plug-in for iPhone Safari. Currently it's only available for jailbroken phones.

See http://lbs.tralfamadore.com/

It is possible to get the GPS information in JavaScript on the iPhone. The QuickConnectiPhone framework exposes this for you as well as acceleration information.

To get this information you will have to install the application on the device however. This framework will soon be available for Android installed applications as well as Nokia.

You can put your application into the framework for each of these devices, compile, and ship.

QuickConnectiPhone is available at https://sourceforge.net/projects/quickconnect/

and if you contact me I can give you pre-release versions for Android and Nokia.

Rhodes is promising a "develop-once-run-everywhere" solution. Haven't tried them myself.

Currently, it's not possible to obtain an iPhone's GPS position using just JavaScript APIs. There's been talk that this would be nice, but of course Apple won't comment on future improvements in public.

Related