谷歌浏览器:通过控制台覆盖地理位置

时间:2017-07-06 13:17:55

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

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

为了测试这个应用程序(不在汽车里开车),我需要模拟一个地理定位路径。谷歌浏览器支持通过传感器开发人员设置覆盖地理位置数据,该设置可以在当时的一个坐标下正常工作。

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

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

提前致谢。

1 个答案:

答案 0 :(得分:3)

一种方法是使用您自己的自定义函数覆盖函数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);
  }