javascript - 谷歌浏览器 : Override geolocation via console

标签 javascript google-chrome google-maps-api-3 geolocation google-chrome-devtools

我的问题有一些背景知识;我正在使用 Google Maps directions API 编写一个简单的驾驶说明 Web 应用程序,它为我提供 LatLng 路径以及文本说明。

为了测试此应用程序(无需驾驶汽车),我需要模拟地理定位路径。 Google Chrome 浏览器支持通过传感器开发人员设置覆盖地理位置数据,这在当时仅适用于一个坐标。

所以我的问题是 - 是否可以通过控制台(即 javascript api)设置浏览器 navigator.geolocation 数据,而不是手动更新传感器设置菜单中的值?

我知道在这种情况下我可以只使用浏览器地理定位数据之外的另一个输入源并使用 LatLng 的静态数组,或者覆盖浏览器 navigator.geolocation.getCurrentPosition,但我认为覆盖会更复杂取而代之的是传感器。

提前致谢。

最佳答案

一种方法是使用您自己的自定义函数覆盖函数 navigator.geolocation.getCurrentPosition。在自定义函数中,您可以自定义纬度和经度的值。

var customPosition = {};
customPosition.coords = {};
customPosition.coords.latitude = 41.89;
customPosition.coords.longitude = 2.89;

navigator.geolocation.getCurrentPosition = function(success, error){
    success(customPosition);

};

function success(position) {
    var latitude  = position.coords.latitude;
    var longitude = position.coords.longitude;

    console.log("latitude: " + latitude);
    console.log("longitude: " + longitude);
  }

关于javascript - 谷歌浏览器 : Override geolocation via console,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44950093/

相关文章:

javascript - ngModel 在 Controller 中更新,但不在 View 中更新, Angular 2

javascript - Google Maps API JS - MarkerClusterer - 无法读取未定义的属性 'maxZoom'

javascript - 获取存储在谷歌地图标记的附加字段中的数据

javascript - Babel Decorators 转换,无论我尝试什么,都会不断获得意想不到的标记(使用 React 项目)

javascript - Angular.js - 使用服务需要回调

css - 网页 3d 动画的 chrome 扩展

google-chrome - Chrome 扩展程序背景页面未显示 Chrome 通知

javascript - onClick 触发所有元素。我只想触发指定的元素

javascript - jQuery hoverIntent : 'Uncaught TypeError: Cannot call method ' apply' of undefined'

javascript - 使用 JavaScript 和 Google Chrome 创建和打开新窗口并打印图像