Google Chrome:通过控制台覆盖地理定位

Google Chrome: Override geolocation via console

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

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

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

我知道在这种情况下我可以只使用浏览器地理定位数据之外的另一个输入源并使用 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);
  }