我正在开发一个依赖于获取移动用户地理位置数据的网站。我正在使用典型的方式进行:
function initialize() {
if(window.google && google.gears) {
var geo = google.gears.factory.create('beta.geolocation');
geo.getCurrentPosition(useLocation, errorOnLocate);
}
else if(navigator.geolocation) {
navigator.geolocation.getCurrentPosition(useLocation, errorOnLocate);
}
else {
alert("no geo found");
}
}
function errorOnLocate(message)
{
alert(message);
zoomTo(-34.397, 150.644);
}
无论我如何更改位置方法的顺序,在 errorOnLocate 函数中始终会失败并显示 [object PositionError] 错误。这是在使用内置浏览器的 Android 2.1 的 HTC Hero 上。我的 GPS 处于开启状态,我已经指示浏览器允许网站查看我的位置。该手机自带的谷歌地图应用程序的“位置”功能可以很好地找到我的位置。此外,如果我在个人电脑上使用 Firefox 3.5 访问我的网站,则它将正确地找到我的位置(我认为它使用 ip 和 ap 数据点的组合)。无论如何,它都使用相同的 JavaScript。编辑:这是在浏览器中使用 HTML/JS,而不是原生应用程序。此外,确切的错误消息是“最后一个位置提供程序已禁用”。