수색…


통사론

  • navigator.geolocation.getCurrentPosition ( successFunc , failureFunc )
  • navigator.geolocation.watchPosition ( updateFunc , failureFunc )
  • navigator.geolocation.clearWatch ( watchId )

비고

Geolocation API는 사용자가 기대하는 바를 수행합니다. 위도와 경도로 표시된 클라이언트의 위치 정보를 검색합니다. 그러나 위치를 알려주는 것은 사용자의 몫입니다.

이 API는 W3C Geolocation API 사양에 정의되어 있습니다. 시민 주소를 얻고 이벤트의 지오 펜싱 / 트리거링을 가능하게하는 기능이 탐색되었지만 널리 구현되지 않았습니다.

브라우저가 Geolocation API를 지원하는지 확인하려면 :

if(navigator.geolocation){
    // Horray! Support!
} else {
    // No support...
}

사용자의 위도와 경도를 구하십시오.

if (navigator.geolocation) {
  navigator.geolocation.getCurrentPosition(geolocationSuccess, geolocationFailure);
} else {
  console.log("Geolocation is not supported by this browser.");
}

// Function that will be called if the query succeeds
var geolocationSuccess = function(pos) {
  console.log("Your location is " + pos.coords.latitude + "°, " + pos.coords.longitude + "°.");
};

// Function that will be called if the query fails
var geolocationFailure = function(err) {
  console.log("ERROR (" + err.code + "): " + err.message);
};

자세한 설명 오류 코드

Geolocation이 실패하는 경우 콜백 함수는 PositionError 객체를받습니다. 객체에는 1 , 2 또는 3 값을 갖는 code 라는 속성이 포함됩니다. 이 숫자들은 각각 다른 종류의 오류를 나타냅니다. 아래의 getErrorCode() 함수는 유일한 인수로 PositionError.code 를 사용하고 발생한 오류의 이름이있는 문자열을 반환합니다.

var getErrorCode = function(err) {
  switch (err.code) {
    case err.PERMISSION_DENIED:
      return "PERMISSION_DENIED";
    case err.POSITION_UNAVAILABLE:
      return "POSITION_UNAVAILABLE";
    case err.TIMEOUT:
      return "TIMEOUT";
    default:
      return "UNKNOWN_ERROR";
  }
};

geolocationFailure() 과 같이 사용할 수 있습니다.

var geolocationFailure = function(err) {
  console.log("ERROR (" + getErrorCode(err) + "): " + err.message);
};

사용자의 위치가 변경 될 때 업데이트 받기

사용자의 위치에 대한 정기적 인 업데이트를받을 수도 있습니다. 예를 들어 모바일 장치를 사용하는 동안 이동합니다. 시간이 지남에 따른 위치 추적은 매우 민감 할 수 있으므로 미리 왜이 권한을 요청하는지 사용자에게 설명하고 데이터를 사용하는 방법을 설명하십시오.

if (navigator.geolocation) {
    //after the user indicates that they want to turn on continuous location-tracking
    var watchId = navigator.geolocation.watchPosition(updateLocation, geolocationFailure);
} else {
    console.log("Geolocation is not supported by this browser.");
}

var updateLocation = function(position) {
    console.log("New position at: " + position.coords.latitude + ", " + position.coords.longitude);
};

지속적인 업데이트를 끄려면 다음을 수행하십시오.

navigator.geolocation.clearWatch(watchId);


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow