0

因此,我的问题的一点背景;我正在使用Google Maps路线API编写一个简单的驾驶说明Web应用程序,它为我提供了一个LatLng路径以及文本说明。谷歌浏览器:通过控制台覆盖地理位置

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

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

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

在此先感谢。

回答

1

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