我必须在这里做错事,但我找不到...我为公司网站制作一个页面,除其他外,根据用户的当前位置为工作地点提供路线。为了获得他们的位置,我使用了Firefox中实现的Geolocation API(我正在使用FF9和现在的FF10进行测试)。就目前而言,我与在示例代码测试Wikipedia article:地理定位API不起作用,谷歌地图也不是“我的位置”
<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。
我想也许我会莫名其妙地在我的浏览器或我的网络设置或东西(虽然我无法想象)疯玩的东西了,所以我试了下测试,每个人都应该能够做到:
- 转到maps.google.com。
- 搜索“西雅图”(或其他位置,无论)。
- 点击“查询路线”按钮。
- 在左边的指示框中,“A”应该说“我的位置”,“B”应该说“西雅图”。 (如果A中没有提及“我的位置”,请在框中键入“m”,并且自动填充下拉菜单通常会将“我的位置”作为第一个选项。)
- 单击“取得方向”按钮。
- Firefox应该弹出消息说maps.google.com想知道您的位置。点击“分享位置”。
- 几秒钟后,它应该会显示您从某处(无论它认为您的服务器在哪里)到西雅图的方向,或者“A”框应该变为空白,并且会显示“无法找到您的位置”或类似朝向地图的顶部。
这是奇怪的事情:我从来没有得到这个在任何计算机上工作。我的工作电脑(在FF10和Chrome上),我的同事电脑,我的家用电脑和我的GF工作电脑都做同样的事情;没有人可以找到位置。
所以我的问题是:是位置API下跌或什么,或者我搞砸了吗?我一直无法在网上找到API停机的迹象,而且看起来中断的可能性不大,但如果是这样,为什么它在我尝试过的任何计算机上都无法工作?其他人是否可以复制这些发现或知道我做错了什么?
谢谢!
是的,API已启动并正在运行。由于您已经尝试了属于多人的电脑,因此我也排除您将浏览器设置为永远不会共享您的位置。这听起来似乎更合理,因为你的浏览正在尝试,但因为某些事情正在发展而失败。 – miguev 2012-02-02 00:42:44
我在俄勒冈州的波特兰。我希望谷歌知道那是什么。 :)我可以看到一个ISP阻止它,但我已经尝试了至少应该有四个独立的提供者:我的工作互联网访问实际上是通过内部网连接到东海岸某处的外部世界,然后我的家庭互联网ISP,我的Android手机的wifi热点,以及我的GF的工作连接。它会弹出一个框询问我是否想每次分享位置,以便该部分工作正常,但随后会返回错误代码2和我的测试代码,并且无法在Google地图上找到“我的位置”。 – Sam 2012-02-02 14:58:29