是否有任何简单的方法可以覆盖地理定位API 的默认行为,只需硬编码你当前的位置?

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

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

有什么想法吗?

由于

理想情景

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

有帮助吗?

解决方案

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服务。请参阅错误716453 更新2: geo.wifi.uri not geo.wifi.url

其他提示

最简单的方法是导航到 about:config ,然后在过滤器框中输入 geo.wifi.uri ,双击显示的唯一配置行,并使用从 xxx 和 yyy 后输入以下值。 COM /“> http://www.getlatlon.com/

<代码>数据:应用程序/ JSON,{&QUOT;位置&QUOT;:{&QUOT;纬度&QUOT;:XXX,&QUOT;经度&QUOT;:YYY,&QUOT;准确性&QUOT;:10}}

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

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

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

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

在生产中,您只需将 customGeoLocation 设置为 navigator.geolocation ,并在测试中使用您使用的任何功能的模拟实现。

编辑:原来你可以替换 navigator.geolocation 对象上的函数,但是如果你使用需要创建的模拟库(如JsMock)那仍然没用一个模拟对象。所以你将无法用mock替换 navigator.geolocation

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

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

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

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

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

干杯,MetaEd

我创建了一个简单的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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top