지리적 위치 API 소개

이 항목에서는 지리적 위치 API를 소개하고 지리적 위치가 지원되는지 여부를 확인하는 방법과 사용자 개인 정보가 보호되는 방법에 대해 설명합니다.

소개

Windows Internet Explorer 9에는 Wi-Fi 위치 데이터와 IP(인터넷 프로토콜) 주소 정보를 사용하여 Windows Internet Explorer를 실행하는 컴퓨터나 장치의 위도와 경도를 결정하는 기본 제공 위치 공급자가 도입되었습니다. 지리적 위치 API에서는 window.navigator의 자식 개체인 geolocation 개체를 사용하여 웹 페이지의 JavaScript에 위도와 경도를 노출합니다. geolocation 개체를 통해 웹 페이지에서 다음 작업을 수행할 수 있습니다.

  • getCurrentPosition 메서드를 사용하여 현재 지리적 위치를 가져옵니다.
  • watchPosition 메서드를 사용하여 시간에 따라 변경되는 위치를 감시합니다. watchPosition을 호출하면 clearWatch를 호출하여 변경 감시를 중지할 때까지 후속 위치 업데이트를 구독하는 효과가 있습니다.
이 두 메서드는 호출되면 즉시 반환됩니다. 메서드 호출 결과는 비동기적으로 도착합니다. 각 메서드는 확인될 경우 위치를 받기 위해 구현한 콜백 메서드의 인수를 사용합니다.

감지 또는 오류 검사가 없는 간단한 getCurrentPosition 호출은 다음 코드 줄과 같이 표시될 수 있습니다.



  window.navigator.geolocation.getCurrentPosition(show_map);

show_map 호출 함수는 위도 및 경도 좌표를 받습니다.


  function show_map(position) { 
    var latitude = position.coords.latitude;
    var longitude = position.coords.longitude;
    // Add code to show a map here
  }

위치를 자세히 표시하는 방법을 보여 주는 샘플 웹 페이지는 다음을 참조하세요.

지리적 위치 지원 감지

지리적 위치 API를 사용하기 전에 응용 프로그램에서 브라우저가 지리적 위치 API를 지원하는지 여부를 확인해야 합니다. 지리적 위치 API를 사용할 수 없는 경우 window.navigator.geolocation이 null입니다. 다음 코드 예제에서는 지리적 위치 API를 사용할 수 있는지 여부를 확인합니다. 사용자가 단추를 클릭하면 함수를 통해 geolocation이 지원되는지 여부를 나타내는 경고 상자가 표시됩니다.


<!DOCTYPE html>

<html>
<head>
  <title>Geolocation example: Checking for geolocation support</title>
  <meta http-equiv="X-UA-Compatible" content="IE=edge"> <!-- Remove this line in production. -->
</head>

<body>
  <p>
    <input type="button" onclick="show_islocationenabled();" value="Is Geolocation supported?" />
  </p>
  <div></div>
  <script>
    function show_islocationenabled() {
      var str = "No, geolocation is not supported.";

      if (window.navigator.geolocation) {
        str = "Yes, geolocation is supported.";
      }

      document.getElementsByTagName('div')[0].textContent = str;
    }
  </script>
</body>
</html>

앞의 예제에서 페이지 맨 위의 <!DOCTYPE html> 요소는 실제로 필요합니다. 지리적 위치 API는 W3C 지리적 위치 API 사양(영문)에 명시된 새로운 표준의 구현이며 Internet Explorer에서는 IE9 표준 모드 이상으로 표시된 웹 페이지에서만 지리적 위치 API를 지원합니다. Internet Explorer 9 이상 버전에서 표준 모드를 사용하려면 HTML5 문서 유형을 선언하는 <!doctype> directive를 포함합니다.


<!DOCTYPE html> 

개인 정보 보호 고려

원격 웹 서버와 실제 위치를 공유하는 경우 개인 정보 보호가 중요합니다. 따라서 지리적 위치 API를 사용하려면 사용자가 위치 정보에 액세스할 수 있는 권한을 웹 응용 프로그램에 제공해야 합니다. 지리적 위치 데이터를 요청하는 웹 페이지를 처음 방문하면 Internet Explorer에서 사용자 위치에 대한 액세스를 요청하는 알림 표시줄을 표시합니다. getCurrentPosition 또는 watchPosition을 호출하면 프롬프트가 트리거됩니다.

이 프롬프트는 사용자에게 다음 옵션을 제공합니다.

  • 한 번 허용. 다음에 사용자가 사이트를 방문할 때 알림 표시줄이 다시 표시됩니다.
  • 항상 허용하거나 항상 거부합니다. Internet Explorer에서는 알림 표시줄이 다시 표시되지 않도록 사용자가 선택한 옵션을 기억합니다.

사용자가 옵션을 선택할 때까지 알림이 차단되므로 웹 사이트에서 사용자 응답을 기다리는 동안 위치를 확인할 수 없습니다.

사용자가 사용 권한을 부여하지 않으면 웹 응용 프로그램에서 위치 정보를 사용할 수 없습니다. getCurrentPositionwatchPosition을 호출해도 성공 콜백이 트리거되지 않습니다. 오류 콜백을 제공하면 오류 코드 PERMISSION_DENIED로 트리거됩니다.

위치 데이터를 수집하는 웹 응용 프로그램의 개발자는 개인 정보 보호를 위한 다음 지침을 고려해야 합니다.

  • 필요한 경우에만 위치 정보를 요청하고, 정보가 제공된 대상 작업에만 위치 정보를 사용합니다.
  • 사용자가 정보 저장 권한을 명시적으로 부여하지 않은 경우 정보가 제공된 대상 작업이 완료되면 위치 정보를 폐기합니다.
  • 위치 정보를 웹 서버에 저장하는 경우 무단으로 액세스할 수 없도록 위치 정보를 보호하고 사용자가 이 정보를 업데이트 및 삭제할 수 있도록 허용해야 합니다.
  • 응용 프로그램에서 위치 데이터를 수집하고 있다는 사실을 공개합니다. 이 공지 사항에는 위에 나열된 지침의 모든 예외에 대한 설명을 포함해야 합니다.

API 참조

Geolocation

샘플 및 자습서

현재 위치 가져오기
위치 변경 감시
오류 처리
시간 제한 기간 지정

Internet Explorer 테스트 드라이브 데모

W3C 지리적 위치

IEBlog 게시물

IE9의 W3C 지리적 위치 API

사양

지리적 위치 API 사양

관련 항목

HTML5 지리적 위치에 대한 12가지 멋진 아이디어
브라우저에서 호스트된 서비스와 함께 지리적 위치 사용

 

 

표시:
© 2014 Microsoft