有没有简单的方法来覆盖geolocation api的默认行为,只是硬编码您当前的位置?
我认为这对于测试和隐私原因(提供假位置数据)非常有用
我认为有一个补充,但我似乎找不到一个。现在只有选项似乎正在将about:config geo.wifi.url更改为一些替代的web服务,我认为这个过于复杂。
有什么想法吗?
由于
理想情景
有人实现了一个附加组件,其中显示了Google地图,我可以选择一个新的默认位置。
答案 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
我希望这个工具能证明是有用的。