오류 처리

이 항목에서 제공하는 샘플은 지리적 위치 API 호출에서 발생하는 오류를 처리할 호출 함수를 구현하는 방법을 보여 줍니다. 오류 콜백 함수는 getCurrentPosition 또는 watchPosition에 대한 두 번째 선택적 매개 변수를 사용하여 지정합니다.

이 오류 호출 함수는 PositionError 매개 변수 한 개를 사용합니다. PositionError 개체는 오류 유형을 나타내는 code 특성과 오류 메시지를 포함할 수 있는 message 특성을 제공합니다. message 특성은 최종 사용자를 위한 것이 아니며 디버그 목적으로만 사용되어야 합니다.

다음 표에서는 가능한 오류 유형에 대해 설명합니다.

오류설명
PositionError.PERMISSION_DENIED (1)이 사이트는 지리적 위치 API를 사용할 수 있는 권한이 없습니다.
PositionError.POSITION_UNAVAILABLE (2)현재 위치를 확인할 수 없습니다.
PositionError.TIMEOUT (3)지정된 제한 시간 내에 현재 위치를 확인할 수 없습니다.

 

다음 예제에서는 성공적인 호출과 오류 호출을 매개 변수로 사용하여 getCurrentPosition을 호출하는 방법을 보여 줍니다. 오류 콜백 함수는 오류 개체의 code 특성에 따라 메시지를 표시합니다.


<!DOCTYPE html>  
<html>
<head>
<title>Geolocation API Example</title>
<meta http-equiv="X-UA-Compatible" content="IE=9" />
<script type="text/javascript">

function setText(val, e) {
    document.getElementById(e).value = val;
}

function insertText(val, e) {
    document.getElementById(e).value += val;
}

var nav = null; 

function requestPosition() {
  if (nav == null) {
      nav = window.navigator;
  }
  if (nav != null) {
      var geoloc = nav.geolocation;
      if (geoloc != null) {
          geoloc.getCurrentPosition(successCallback, errorCallback);
      }
      else {
          alert("Geolocation not supported");
      }
  }
  else {
      alert("Navigator not found");
  }
}



function successCallback(position)
{
   setText(position.coords.latitude, "latitude");
   setText(position.coords.longitude, "longitude");
}

 
function errorCallback(error) {
    var message = "";  

    // Check for known errors
    switch (error.code) {
      case error.PERMISSION_DENIED:
          message = "This website does not have permission to use " + 
                    "the Geolocation API";
          break;
       case error.POSITION_UNAVAILABLE:
          message = "The current position could not be determined.";
          break;
       case error.TIMEOUT:
          message = "The current position could not be determined " + 
                    "within the specified timeout period.";            
          break;
    }

    // If it is an unknown error, build a message that includes 
    // information that helps identify the situation so that 
    // the error handler can be updated.
    if (message == "")
    {
        var strErrorCode = error.code.toString();
        message = "The position could not be determined due to " + 
                  "an unknown error (Code: " + strErrorCode + ").";
    }
    alert(message);

}


</script>
</head>
<body>
<label for="latitude">Latitude: </label><input id="latitude" /> <br />
<label for="longitude">Longitude: </label><input id="longitude" /> <br />
<input type="button" onclick="requestPosition()" value="Get Latitude and Longitude"  /> 

</body>
</html>


관련 항목

현재 위치 가져오기
위치 인식 웹 페이지를 만드는 방법
시간 제한 기간 지정
위치 변경 감시

 

 

표시:
© 2014 Microsoft