0

모바일 웹 애플리케이션의 경우 기기의 위치 이동을 에뮬레이션하고 싶습니다. Chrome의 개발자 콘솔 (참조 : https://developers.google.com/web/tools/chrome-devtools/device-mode/device-input-and-sensors)의 센서 탭을 사용하여 단일 위치를 재정의하는 것이 가능하지만 위치를 계속 무시하고 싶습니다. 예를 들어 기기의 위치를 ​​매초 업데이트하십시오.Chrome에서 GPS 위치 연속 에뮬레이션

Chrome (또는 다른 데스크톱 브라우저)에서이를 수행 할 수 있습니까? 나는 (GPX 또는 KML 파일에서) 기록 된 GPS 트랙을 재생할 수 있습니다 안드로이드 에뮬레이터와 유사한 솔루션을 찾고 있어요

는 : enter image description here

(참조 : https://developer.android.com/guide/topics/location/strategies.html#MockData를)

답변

1

DevTools로는 어떤 기능에 대한이 없습니다 그러나 만약 당신이 getCurrentPosition()을 사용하고 있다면, 스 니펫에있는 함수를 오버 라이딩함으로써 이것을 재현 할 수 있습니다.

watchPosition()을 사용하는 경우이 워크 플로가 작동하지 않는다고 가정합니다. 브라우저가 좌표를 업데이트 할 때 기본적으로 청취되는 수신기이기 때문입니다. 브라우저의 좌표를 업데이트 할 방법이 없습니다.

그러나 워크 플로를 b/c 아래에 기록하면 다른 사람에게 유용 할 수 있습니다.

  1. snippet에 스크립트를 저장하십시오.
  2. Override navigator.geolocation.getCurrentPosition() 대상 좌표에.

그래서, 당신은 지정된 시간에 좌표를 업데이트 할 setTimeout()을 사용 후 (중 하나를 조각 내에서, 또는 단지/XHR을 사용하여 조각에서 JSON을 가져 오기) JSON의 좌표와 타임 스탬프를 저장하고있다.

var history = [ 
    { 
    time: 1000, 
    coords: ... 
    }, 
    { 
    time: 3000, 
    coords: ... 
    } 
]; 

for (var i = 0; i < history.length; i++) { 
    setTimeout(function() { 
    navigator.geolocation.getCurrentPosition = function(success, failure) { 
     success({ 
     coords: history[i].coords, 
     timestamp: Date.now() 
     }); 
    }, history[i].time); 
} 
+0

maps.google.com이 몇 gps 위치의 탭에서 열렸을 때이 스 니펫을 시도했습니다. 불행히도지도의 위치 마커는 수동으로 페이지를 새로 고침 할 때만 새로 고침됩니다 (한 번). google-maps가 'getCurrentPosition()'대신 'watchPosition()'을 사용하여 위치를 지속적으로 업데이트하기 때문이라고 가정합니다. 언급했듯이 브라우저의 위치를 ​​지속적으로 업데이트 할 수있는 방법이없는 것처럼 보입니다. ( 워크 플로를 공유해 주셔서 감사합니다. – user2350644