40

有谁知道 iPhone 是否支持或即将支持W3C 地理定位规范

我希望为移动用户构建一个应用程序,但与其花时间为每个不同的平台(iPhone、Android 等)开发应用程序,我更愿意创建一个利用W3C 标准。

4

9 回答 9

46

这段代码对我有用——在 iPhone 网络浏览器Safari上 作为一个额外的好处,它甚至可以在我的笔记本电脑上与FireFox 3.5一起使用!Geolocation API 规范是 W3 联盟标准的一部分但请注意:它尚未最终确定。

替代文字
(来源:bemoko.com (来源: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>
于 2009-07-15T21:14:27.747 回答
7

在 iPhone 3.0 发布之后,您现在可以在 safari 浏览器中从 Javascript API 获取位置 - 我们创建了一个工作示例 @ http://blog.bemoko.com/2009/06/17/iphone-30-geolocation-javascript-接口/

于 2009-06-19T08:36:36.657 回答
5

由于 iPhone OS 3.0 Safari 支持获取地理位置。请参阅:Safari 参考库:获取地理位置另一方面,W3C Geo API 规范仍在草稿中。

于 2009-12-16T08:18:48.980 回答
2

我更新了 MyWhirledView 的代码。在我的 iOS 4.3 设备上运行良好。Google 不再需要 API 密钥来访问其静态地图库。

<?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>
于 2011-03-18T17:41:06.877 回答
0

这就是我开发Locatable 应用程序的原因——它本质上是iPhone Safari 的一个插件。目前它仅适用于越狱手机。

http://lbs.tralfamadore.com/

于 2009-05-09T17:46:31.687 回答
-1

可以在 iPhone 上用 JavaScript 获取 GPS 信息。QuickConnectiPhone 框架为您公开了这一点以及加速信息。

但是,要获取此信息,您必须在设备上安装应用程序。该框架很快将可用于 Android 安装的应用程序以及诺基亚。

您可以将您的应用程序放入每个设备的框架中,然后编译和发布。

QuickConnectiPhone 位于https://sourceforge.net/projects/quickconnect/

如果您联系我,我可以为您提供 Android 和诺基亚的预发布版本。

于 2008-12-07T00:11:30.447 回答
-1

Rhodes承诺提供“一次开发,到处运行”的解决方案。自己没有试过。

于 2009-02-05T18:38:23.517 回答
-1

这个小型 javascript 库是跨平台的,开箱即用地支持所有现代智能手机:

http://code.google.com/p/geo-location-javascript/

以下是你如何使用它:

//determine if the handset has client side geo location capabilities
if(geo_position_js.init()){
   geo_position_js.getCurrentPosition(success_callback,error_callback);
}else{
   alert("Functionality not available");
}
于 2012-01-21T10:41:09.127 回答
-3

目前,仅使用 JavaScript API 无法获取 iPhone 的 GPS 位置。有人说这会很好,但苹果当然不会公开评论未来的改进。

于 2008-10-21T12:24:31.843 回答