Firefox的地理定位提供程序,允许手动输入

时间:2009-11-26 00:55:43

标签: javascript geolocation firefox-addon firefox3.5

有没有简单的方法来覆盖geolocation api的默认行为,只是硬编码您当前的位置?

我认为这对于测试和隐私原因(提供假位置数据)非常有用

我认为有一个补充,但我似乎找不到一个。现在只有选项似乎正在将about:config geo.wifi.url更改为一些替代的web服务,我认为这个过于复杂。

有什么想法吗?

由于

理想情景

有人实现了一个附加组件,其中显示了Google地图,我可以选择一个新的默认位置。

7 个答案:

答案 0 :(得分:13)

最简单的方法是导航到about:config,然后在过滤器框中输入geo.wifi.uri,双击显示的唯一配置行,并在替换{{1后输入下面的值和} xxx以及来自http://www.getlatlon.com/之类的服务的坐标:

yyy

此技巧不需要任何加载项或本地/托管文件。确保该值没有任何空格并且在一行上!

答案 1 :(得分:12)

geo.wifi.uri不需要是网络服务。您还可以使用file:// ...

将其设置为本地uri

该文件应该是一个json文件,其内容如下:

{"location": {
              "latitude": 48.777025000000002, 
              "longitude": 9.1713909999999998, 
              "accuracy": 10.0}}

<强>更新 对于Firefox 9+,格式已更改:

{
    "status": "OK",
    "accuracy": 10.0,
    "location": {"lat": 48.777, "lng": 9.171}
}

或者你可以将它们结合起来以支持两者:

{
    "status": "OK",
    "accuracy": 10.0,
    "location": {
        "lat": 48.777,
        "lng": 9.171,
        "latitude": 48.777,
        "longitude": 9.171,
        "accuracy": 10.0
    }
}

更新:看起来手动设置此偏好设置已被提供商阻止,假定使用Google服务。见Bug 716453 更新2: geo.wifi.uri not geo.wifi.url

答案 2 :(得分:5)

Geolocater是一个实验性附加组件,可让您编辑地理位置。

答案 3 :(得分:1)

在Chrome中,您可以使用Manual Geolocation Chrome扩展程序。它会让您以图形方式选择手动位置。

答案 4 :(得分:0)

嗯,你不能直接模仿navigator.geolocation - 也许你可以重构使用它的代码来使用另一个对象 - 比如customGeoLocation

在制作中,您可以将customGeoLocation设置为navigator.geolocation,并且在测试中使用您使用的任何功能的模拟实现。

编辑:原来你可以替换navigator.geolocation对象上的函数,但如果你使用需要创建模拟对象的模拟库(如JsMock),这仍然无用。因此,您无法用模拟替换navigator.geolocation

你可以用这种方式自己做嘲笑:

var getCurrentPositionCalled = false;
navigator.geolocation.getCurrentPosition = function() { 
  getCurrentPositionCalled = true; 
};

//Your app code here
//...
assert(getCurrentPositionCalled);

答案 5 :(得分:0)

我已将Google Latitude连接到Firefox地理位置。这样,您只需单击鼠标即可手动更新谷歌纵横中的位置,而无需自行查找纬度和经度并将其键入本地文件。我关于这个主题的文章是Make Firefox Take Geolocation From Google Latitude

解决方案需要少量的服务器端编码(我在文章中提供了源代码),但我暂时将此代码作为您可以使用的免费实时服务运行。

干杯,MetaEd

答案 6 :(得分:0)

我创建了一个简单的Web应用程序,用作地理位置终结点,您可以将浏览器的geo.wifi.uri指向。它与Google API规范兼容。要使用它,只需输入以下内容,将[纬度]和[经度]替换为所需的值:

http://geolocation-mocker.phitherek.me/geolocate/[latitude]/[longitude]

它应该有效。要检查服务是否已启动,请导航至

http://geolocation-mocker.phitherek.me

并检查HTML页面是否正确显示。您可以在

找到此简单应用的源代码

https://github.com/Phitherek/geolocation-mocker

我希望这个工具能证明是有用的。