地理定位API不起作用,Google地图也不起作用“我的位置”

时间:2012-02-02 00:05:33

标签: google-maps geolocation google-geolocation

我必须在这里做错事,但我找不到......我正在为我的公司网站制作一个页面,除其他外,它根据用户的当前位置提供到工作地点的路线。为了获得他们的位置,我正在使用Firefox中实现的Geolocation API(我正在使用FF9和现在的FF10进行测试)。目前我正在使用Wikipedia article中的示例代码进行测试:

<html>
<head>
<title>Geolocation Test</title>
<script type='text/javascript'>
var gl;

function displayPosition(position) {
  var p = document.getElementById("p");
  p.innerHTML = "<table border='1'><tr><th>Timestamp</th><td>" + position.timestamp +
    "<tr><th>Latitude (WGS84)</th><td>" + position.coords.latitude + " deg</td></tr>" +
    "<tr><th>Longitude (WGS84)</th><td>" + position.coords.longitude + " deg</td></tr></table>";
}

function displayError(positionError) {
  alert("error " + positionError.code);
}

try {
  if (typeof navigator.geolocation === 'undefined'){
    gl = google.gears.factory.create('beta.geolocation');
  } else {
    gl = navigator.geolocation;
  }
} catch(e) {}

if (gl) {
  gl.getCurrentPosition(displayPosition, displayError);
} else {
  alert("Geolocation services are not supported by your web browser.");
}
</script>

<body>
<p id='p'></p>
</body>
</html>

(将其复制/粘贴到文本编辑器中,另存为“whatever.html”,然后将文件拖到浏览器中将其打开)

非常简单的代码,它实际上在上周四,01/26/12工作正常。 (我知道,我知道,人们说“昨天工作了!”当他们真的搞砸了,但我发誓它确实做了。)从那以后,它一直在给我错误代码2,“POSITION_UNAVAILABLE”。我已经在我的工作网络上使用我的工作计算机,在我的家庭互联网连接上使用我的工作和家用计算机,以及通过手机在wifi热点上使用我的工作计算机,并且每次都提供错误代码2。

我想也许我会在我的浏览器或网络设置或其他东西(虽然我无法想象是什么)中某种方式搞砸了,所以我尝试了下一个测试,每个人都应该能够做到:

  1. 转到maps.google.com。
  2. 搜索“西雅图”(或其他位置,无论如何)。
  3. 点击“获取路线”按钮。
  4. 在左侧的方向框中,“A”应该说“我的位置”,“B”应该说“西雅图”。 (如果它没有在A中说“我的位置”,在框中输入“m”,自动填充下拉列表通常会将“我的位置”作为第一个选项。)
  5. 点击“GET DIRECTIONS”按钮。
  6. Firefox会弹出一条消息,说明maps.google.com想知道您的位置。点击“分享位置”。
  7. 几秒后,它应该显示从某个地方(无论它认为你的服务器在哪里)到西雅图的方向,或者“A”框应该是空白的,它会说“找不到你的位置”或类似的在地图的顶部。
  8. 这就是奇怪的事情:我从来没有在任何计算机上使用它。我的工作电脑(在FF10和Chrome上),我的同事的电脑,我的家用电脑和我的GF的工作电脑都做同样的事情;没有人能找到位置。

    所以我的问题是:位置API是关闭还是什么,或者我搞砸了什么?我无法在网上找到任何关于API中断的迹象,看起来中断是不太可能的,但如果是这样,为什么它在我尝试过的任何计算机上都不起作用?任何人都可以复制这些发现或知道我做错了吗?

    谢谢!

2 个答案:

答案 0 :(得分:1)

您的脚本运行正常,Google地图中的位置功能也是如此(FF9.0.1)

你在哪儿? (我的意思是身体上的)如果你在某个偏远的地方,谷歌可能无法计算你的位置!在一些大城市试试吧......

另一种可能是您无法访问Google的位置服务器,就好像您的ISP阻止了它...

答案 1 :(得分:0)

您的脚本似乎在Chrome中运行,但在FF中运行。我在FF中遇到的错误是位置不可用,这意味着FF的位置服务可能无法访问我的wifi网络。我假设您收到的错误是警报中的错误2?

如果你使用Firebug,你可以在第15行设置一个停止点。当它停止时,单击右侧Watch面板中的positionError并查看代码是什么。我读:代码2转换为不可用。

我建议你有一些其他代码来处理这个实例。