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

vic*_*zki 3 javascript google-chrome geolocation google-maps-api-3 google-chrome-devtools

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

为了测试这个应用程序(无需开车),我需要模拟地理位置路径。Google Chrome 支持通过传感器开发人员设置覆盖地理位置数据,一次只使用一个坐标即可正常工作。

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

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

提前致谢。

Abh*_*dha 5

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);
  }
Run Code Online (Sandbox Code Playgroud)