참고: 번역본.
Copyright © 2025 World Wide Web Consortium. W3C® liability, trademark and permissive document license rules apply.
위치 정보는 호스팅 장치와 연관된 지리적 위치 정보에 접근할 수 있게 해줍니다.
이 섹션은 이 문서가 출판될 당시의 상태를 설명합니다. 현재 W3C 출판물 목록과 이 기술 보고서의 최신 개정판은 W3C 표준 및 초안 색인에서 확인할 수 있습니다.
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
Referenced in:
이 명세가 2022년 9월 1일 W3C 권고안이 된 이후로, 다음과 같은 실질적인 추가 및/또는 수정 사항이 제안되었습니다:
변경사항에 대한 자세한 목록은 D. 변경 로그 섹션에서 확인할 수 있습니다. 문서의 검토자는 고유한 스타일로 표시된 후보 추가 및/또는 수정 사항을 식별할 수 있습니다.
본 문서는 장치 및 센서 워킹 그룹과 웹 애플리케이션 워킹 그룹에서 권고안 트랙을 통해 권고안으로 발행되었습니다. 이 문서는 후보 개정안을 포함하며, 이전 권고안 이후 실질적인 변경 사항과 새로운 기능을 도입합니다.
W3C는 이 명세를 웹 표준으로 널리 배포할 것을 권장합니다.
W3C 권고안은 광범위한 합의 과정을 거쳐 W3C와 회원들이 승인한 명세이며, 워킹 그룹 회원들은 구현에 대해 로열티 없는 라이선스를 제공할 의무를 가집니다. 향후 권고안 업데이트에는 새로운 기능이 포함될 수 있습니다.
후보 추가 사항은 문서에서 표시됩니다.
후보 수정 사항은 문서에서 표시됩니다.
본 문서는 W3C 특허 정책에 따라 운영하는 그룹에서 제작되었습니다. W3C는 공개 특허 공개 목록(장치 및 센서 워킹 그룹)과 공개 특허 공개 목록(웹 애플리케이션 워킹 그룹)을 관리하며, 각 그룹의 산출물과 관련된 공개 내용 및 특허 공개 방법에 대한 안내도 포함합니다. 어떤 개인이 필수 청구항을 포함한다고 생각되는 특허를 실제로 알고 있다면, W3C 특허 정책 6절에 따라 정보를 공개해야 합니다.
이 문서는 2023년 11월 3일 W3C 프로세스 문서에 따라 관리됩니다.
이 섹션은 규범적이지 않습니다.
위치 정보는 구현이 호스팅되는 장치에만 연관된 위치 정보에 대한 고수준 인터페이스를 정의합니다. 일반적인 위치 정보의 출처로는 GPS(Global Positioning System)와 IP 주소, RFID, WiFi 및 Bluetooth MAC 주소, GSM/CDMA 셀 ID와 같은 네트워크 신호로부터 추론된 위치, 그리고 사용자 입력이 포함됩니다. API 자체는 위치 정보의 출처와 무관하며, API가 장치의 실제 위치를 반환한다는 보장은 없습니다.
최종 사용자가 권한을 부여할 경우, 위치 정보는 다음을 제공합니다:
GeolocationPosition
인터페이스를 통해 제공합니다.
getCurrentPosition
()
메서드를 통한 "단일" 위치 업데이트와 watchPosition
()
메서드를 통해
호스팅 장치의 위치가 크게 변경될 때 업데이트를 받을 수 있습니다.
PositionOptions
의 maximumAge
를 사용하여, 애플리케이션이 지정한 값보다
오래되지 않은 캐시된 위치를 요청할 수 있습니다(가장 마지막 위치만 캐시됨).
GeolocationPositionError
객체를 통해 위치 획득 중 발생한 오류에 대한 업데이트를 받을 수 있게 합니다.
enableHighAccuracy
를 통해 "고정밀"
위치 데이터를 요청할 수 있지만, 해당 요청은 사용자 에이전트에 의해 무시될 수 있습니다.
이 섹션은 규범적이지 않습니다.
이 명세는 호스팅 장치와 연관된 지리적 위치 정보를 가져오는 스크립팅 API 제공에 한정됩니다. 지리적 위치 정보는 세계 측지 시스템 좌표 [WGS84]로 제공됩니다. 어떤 형태의 마크업 언어 제공이나, 지리적 위치를 식별하는 URL을 만들기 위한 새로운 URL 스킴 정의는 포함하지 않습니다.
이 섹션은 규범적이지 않습니다.
API는 "단일" 위치 요청과 반복 위치 업데이트 요청 모두를 가능하게 하도록 설계되었습니다. 아래 예시는 일반적인 사용 사례를 보여줍니다.
이 섹션은 규범적이지 않습니다.
사용자의 현재 위치를 요청합니다. 사용자가 허용하면 위치 객체를 반환받게 됩니다.
이 섹션은 규범적이지 않습니다.
사용자의 현재 위치를 지속적으로 관찰하는 기능을 요청합니다. 사용자가 허용하면 사용자의 위치에 대한 지속적인 업데이트를 받을 수 있습니다.
이 섹션은 규범적이지 않습니다.
clearWatch
()
메서드를 호출하여 위치 변경
관찰을 중지합니다.
이 섹션은 규범적이지 않습니다.
오류가 발생하면 watchPosition
()
또는 getCurrentPosition
()
메서드의 두 번째 인자가 GeolocationPositionError
오류 객체로 호출되어,
어떤 문제가 발생했는지 파악하는 데 도움이 됩니다.
이 섹션은 규범적이지 않습니다.
기본적으로 API는 이전에 획득한 위치가 있다면 항상 캐시된 위치를 반환하려 시도합니다. 이 예시에서는 10분보다 오래되지 않은 위치만 허용합니다. 사용자 에이전트에 충분히 최신의 캐시된 위치 객체가 없다면 자동으로 새 위치를 획득합니다.
이 섹션은 규범적이지 않습니다.
위치 정보가 시간에 민감하게 필요하다면 PositionOptions
의 timeout
멤버를 사용해 위치 획득을 기다리는 최대 시간을 제한할 수 있습니다.
이 섹션은 규범적이지 않습니다.
기본 허용 목록인
'self'
는 동일 출처의 중첩 프레임에서는 API 사용이 가능하지만, 서드파티 콘텐츠에서는 API 사용을 제한합니다.
서드파티 사용은
allow
="geolocation"
속성을
iframe
요소에 추가하여 선택적으로 활성화할 수 있습니다:
또는, HTTP 응답 헤더를 지정하여 1차 컨텍스트에서 API를 비활성화할 수도 있습니다:
자세한 내용은 Permissions Policy에서
Permissions-Policy
HTTP 헤더에 대해 확인할 수 있습니다.
이 섹션은 규범적이지 않습니다.
이 명세에서 정의된 API는 호스팅 장치의 지리적 위치를 가져오는 데 사용됩니다. 대부분의 경우 이 정보는 장치 사용자의 위치도 함께 공개되어 사용자의 개인정보가 침해될 수 있습니다.
이 섹션은 규범적이지 않습니다.
위치 정보는 강력한 기능으로, 웹 애플리케이션에 위치 데이터가 공유되기 전에 반드시 최종 사용자의 명시적 동의가 필요합니다. 이 요구 사항은 권한 확인 단계에서 규범적으로 강제되며, 이는 getCurrentPosition
()
및 watchPosition
()
메서드가
의존합니다.
최종 사용자는 일반적으로 사용자 인터페이스를 통해 명시적 동의를 제공하며, 이때 다양한 권한 유효 기간을 선택할 수 있습니다. 유효 기간의 선택지는 사용자 에이전트마다 다르지만, 일반적으로 시간 기반(예: "하루"), 브라우저 종료 시까지, 또는 사용자가 무기한으로 권한을 부여할 수도 있습니다. 권한 유효 기간에 따라 사용자 에이전트가 권한을 부여하는 기간이 정해지며, 이 기간이 지나면 권한은 자동으로 기본 권한 상태로 돌아가 이후에는 사용자가 다시 선택하도록 안내됩니다.
권한 유효 기간의 세부 정도는 사용자 에이전트마다 다르나, 이 명세는 기본적으로 한 브라우징 세션으로 유효 기간을 제한할 것을 권장합니다(규범적 요구 사항은 3.4 API 사용 권한 확인에서 설명).
이 섹션은 규범적이지 않습니다.
이 섹션은 "수신자"에 적용되며, 일반적으로 위치 정보를 활용하는 개발자를 의미합니다. 사용자 에이전트나 이 명세가 이러한 요구사항을 강제할 수는 없지만, 개발자는 이 섹션을 신중하게 읽고 아래 제안사항을 준수하기 위해 최선을 다해야 합니다. 개발자는 위치 데이터 사용 및 접근에 관해 해당 관할 지역의 개인정보 보호법이 적용될 수 있음을 인지해야 합니다.
수신자는 필요한 경우에만 위치 정보를 요청하고, 해당 정보는 제공받은 목적에만 사용해야 합니다. 작업이 완료되면 사용자의 명시적 허가 없이 위치 정보를 보관하지 않아야 하며, 또한 무단 접근으로부터 정보를 보호할 조치를 취해야 합니다. 위치 정보가 저장될 경우, 사용자가 해당 정보를 수정 및 삭제할 수 있도록 해야 합니다.
위치 정보 수신자는 사용자의 명시적 허가 없이 위치 정보를 재전송해서는 안 됩니다. 재전송 시에는 주의를 기울여야 하며, 암호화 사용을 권장합니다.
수신자는 위치 데이터를 수집한다는 사실, 수집 목적, 데이터 보관 기간, 데이터 보안 방법, 데이터가 공유되는 경우 공유 방식, 사용자가 데이터에 접근, 수정, 삭제할 수 있는 방법 및 데이터와 관련된 기타 선택사항을 명확하고 눈에 띄게 공개해야 합니다. 이 공개에는 위의 지침에 대한 예외 사항에 대한 설명도 포함되어야 합니다.
이 섹션은 규범적이지 않습니다.
구현자는 다음과 같은 개인정보를 침해할 수 있는 측면을 고려해야 합니다: 어떤 경우에는 사용자가 사용자 에이전트에게 웹사이트에 위치를 공개하도록 실수로 권한을 부여할 수 있습니다. 또 다른 경우에는 특정 URL에 호스팅된 콘텐츠가 변경되어 사용자가 인식하기엔 이전에 부여된 위치 권한이 더 이상 적용되지 않을 수도 있습니다. 또는 사용자가 단순히 마음이 바뀔 수도 있습니다.
이러한 상황을 예측하거나 방지하는 것은 본질적으로 어렵습니다. 대응 및 심층 방어 조치는 구현자의 책임이며 이 명세에서 규정하지 않습니다. 그러나 이러한 조치를 설계할 때, 구현자는 위치 공유에 대한 사용자 인식을 높이고, 권한 철회를 가능하게 하는 사용자 인터페이스에 접근할 수 있도록 해야 합니다.
위치 정보는 기본 강력 기능이며, 이름
"geolocation"
으로
식별됩니다.
API 사용 권한을 확인할 때, 사용자 에이전트는 "24시간", "1주" 등과 같은 시간 기반 권한 유효 기간을 제안하거나, 권한 부여를 무기한 기억할 수도 있습니다. 하지만, 사용자 에이전트는 권장되는 방법으로 권한 유효 기간을 단일 세션으로 제한하는 것을 우선시해야 합니다: 예를 들어, realm이 파괴되거나, 최종 사용자가 다른 곳으로 이동하거나, 관련 브라우저 탭이 닫힐 때까지 등입니다.
출판 시점 기준으로 위치 정보와 관련된 보안 고려사항은 없습니다. 하지만, 3. 개인정보 보호 고려사항을 참고하시기 바랍니다.
WebIDL[Exposed=Window]
interface Geolocation
{
undefined getCurrentPosition
(
PositionCallback
successCallback,
optional PositionErrorCallback
? errorCallback = null,
optional PositionOptions
options = {}
);
long watchPosition
(
PositionCallback
successCallback,
optional PositionErrorCallback
? errorCallback = null,
optional PositionOptions
options = {}
);
undefined clearWatch
(long watchId);
};
callback PositionCallback
= undefined (
GeolocationPosition
position
);
callback PositionErrorCallback
= undefined (
GeolocationPositionError
positionError
);
Geolocation
의 인스턴스는 아래 표의 내부 슬롯과 함께 생성됩니다:
내부 슬롯 | 설명 |
---|---|
[[cachedPosition]] |
GeolocationPosition 타입이며, 초기값은
null입니다. 마지막으로 획득한 위치에 대한 참조로 캐시 역할을 합니다. 사용자 에이전트는 임의로 [[cachedPosition]] 를 언제든 어떤 이유로든 null로
초기화하여 캐시를 제거할 수 있습니다.
|
[[watchIDs]] |
리스트로 초기화되며, unsigned long
항목만 포함합니다.
|
getCurrentPosition
(successCallback,
errorCallback, options)
메서드 단계:
Document
가
완전히 활성 상태가 아니라면:Document
가
완전히 활성 상태가 아니라면:
POSITION_UNAVAILABLE
전달.
watchPosition
(successCallback,
errorCallback, options)
메서드 단계:
Document
가
완전히 활성 상태가 아니라면:Document
가
완전히 활성 상태가 아니라면:
POSITION_UNAVAILABLE
전달.
unsigned long
값으로 생성.
[[watchIDs]]
에).
clearWatch()
가 호출되면, 사용자 에이전트는 반드시
다음을 수행해야 합니다:
[[watchIDs]]
에서 제거합니다.
위치 요청을
하려면, Geolocation
geolocation, PositionCallback
successCallback, PositionErrorCallback?
errorCallback, PositionOptions
options, 그리고 선택적으로 watchId를
전달합니다:
[[watchIDs]]
를 할당합니다.
Document
를 할당합니다.
PERMISSION_DENIED
를
전달합니다.
PERMISSION_DENIED
를
전달합니다.
PermissionDescriptor
의 새 인스턴스를
할당하며,
name
은 "geolocation"
입니다.
PERMISSION_DENIED
를
전달합니다.
위치 획득을 하려면,
PositionCallback
successCallback,
PositionErrorCallback?
errorCallback,
PositionOptions
options, 그리고 선택적으로
watchId를 전달합니다.
[[watchIDs]]
가 watchId를 포함하지 않으면,
이 알고리즘을 종료합니다.
EpochTimeStamp
를 할당합니다.
timeout
을 더한 값을 할당합니다.
[[cachedPosition]]
를
할당합니다.
"geolocation"
으로 조회한 결과를 할당합니다.
GeolocationPositionError
타입이라면:
GeolocationPosition
을
emulatedPositionData, acquisitionTime 및
options.enableHighAccuracy
를
전달하여 생성합니다.
report
"를 전달합니다.
maximumAge
가 0보다
크면:
maximumAge
값을 뺀 결과를 할당합니다.
timestamp
값이 cacheTime보다 크고,
cachedPosition.[[isHighAccuracy]]
가
options.enableHighAccuracy
와
같다면report
"를 전달합니다.
enableHighAccuracy
값을 고려합니다.
double
타입이며,
[WGS84]
좌표계 기준으로
지구 표면의 경도(도)를 나타냅니다. 경도는 본초자오선 기준 동/서 방향 거리를 측정합니다.
double?
타입이며,
[WGS84]
기준 타원체 위의
고도(미터)를 나타내며, 제공되지 않을 경우 null
입니다. 고도는 해수면 기준 높이를
측정합니다.
double
타입이며,
95% 신뢰 구간(미터)로 정확도를 나타냅니다. 정확도는 측정 좌표가 실제 위치와 얼마나 가까운지 나타냅니다.
double?
타입이며,
제공되지 않을 경우 null
이며, 95% 신뢰 구간(미터)로 고도 정확도를 나타냅니다.
double?
타입이며,
제공되지 않을 경우 null
이며, 속도(초당 미터)를 나타냅니다.
double?
타입이며,
제공되지 않거나 장치가 정지 상태일 경우 null
이며, 방향(도, 진북 기준)을 나타냅니다.
GeolocationPosition
을 positionData, acquisitionTime, options.enableHighAccuracy
를
전달하여 생성합니다.
[[cachedPosition]]
를
position으로 설정합니다.
GeolocationPosition
을 acquisitionTime, options.enableHighAccuracy
를
전달하여 생성합니다.
[[cachedPosition]]
를
position으로 설정합니다.
report
"를 전달합니다.
오류 콜백
호출 시 errorCallback
및
PERMISSION_DENIED
를
전달합니다.
TIMEOUT
를
전달합니다.
POSITION_UNAVAILABLE
를
전달합니다.
오류 콜백
호출 지시를 받으면,
PositionErrorCallback?
callback과
unsigned short
code가 주어집니다:
GeolocationPositionError
의 새 인스턴스를
생성하여
code
속성을 code로 초기화합니다.
report
"로 호출합니다.
WebIDLdictionary PositionOptions
{
boolean enableHighAccuracy
= false;
[Clamp] unsigned long timeout
= 0xFFFFFFFF;
[Clamp] unsigned long maximumAge
= 0;
};
enableHighAccuracy
멤버는
애플리케이션이 가장 정확한 위치 데이터를 받고 싶다는 힌트를 제공합니다.
이 멤버의 목적은 애플리케이션이 고정밀 위치 정보가 필요하지 않음을 구현에 알리고, 따라서 구현체가 많은 전력을 소모하는 위치 제공자(GPS 등) 사용을 피할 수 있음을 허용하는 것입니다.
timeout
멤버는
위치 획득이 만료되기 전까지 허용되는 최대 대기 시간을 밀리초 단위로 지정합니다.
문서가 visible 상태가 될 때까지, 그리고
API 사용 권한 획득에 소요된 시간은
timeout
멤버에 포함되지 않습니다. timeout
멤버는
위치 획득이 시작될 때만 적용됩니다.
maximumAge
멤버는 웹 애플리케이션이 지정한 시간(밀리초) 이내의 캐시된 위치를 허용할 수 있음을
나타냅니다.
WebIDL[Exposed=Window, SecureContext]
interface GeolocationPosition
{
readonly attribute GeolocationCoordinates
coords
;
readonly attribute EpochTimeStamp timestamp
;
[Default] object toJSON
();
};
coords
속성은 지리적 좌표를 포함합니다.
timestamp
속성은 장치의 지리적 위치가 획득된 시간을 나타냅니다.
toJSON()
메서드는 GeolocationPosition
객체의 JSON 표현을
반환합니다.
GeolocationPositionError
의 인스턴스는 아래 표의
내부 슬롯과 함께 생성됩니다:
내부 슬롯 | 설명 |
---|---|
[[isHighAccuracy]] |
boolean 타입이며,
enableHighAccuracy
멤버의 값을 GeolocationPosition 가 생성될 때 기록합니다.
|
본 명세에서 아래의 태스크 소스를 정의합니다.
PositionCallback
및 PositionErrorCallback
를 비동기로 큐잉할 때
사용합니다(위치
요청 수행 시).
WebIDL[Exposed=Window, SecureContext]
interface GeolocationCoordinates
{
readonly attribute double accuracy
;
readonly attribute double latitude
;
readonly attribute double longitude
;
readonly attribute double? altitude
;
readonly attribute double? altitudeAccuracy
;
readonly attribute double? heading
;
readonly attribute double? speed
;
[Default] object toJSON
();
};
The latitude and
longitude attributes are geographic coordinates
specified in decimal degrees. latitude
및 longitude
속성은 [WGS84] 기준 시스템의 실수(degree)로 위치를
나타냅니다. accuracy
속성은 위치의 정확도 반경을 미터 단위로 나타냅니다.
altitude
속성은 [WGS84] 타원체 기준 미터 단위의 위치 높이를 나타냅니다.
altitudeAccuracy
속성은 고도 정확도를 미터 단위(예: 10
미터)로
나타냅니다.
heading
속성은 호스트 장치의 이동 방향을 나타내며, 0° ≤ heading < 360°로
진북 기준 시계 방향(도 단위)입니다.
speed
속성은 호스트 장치의 현재 수평 속도의 크기를 초당 미터 단위로 나타냅니다.
toJSON()
메서드는
GeolocationCoordinates
객체의
JSON 표현을 반환합니다.
새로운
GeolocationPosition
은
map
positionData,
EpochTimeStamp
timestamp,
그리고 boolean isHighAccuracy로 다음 단계를 통해 생성됩니다:
GeolocationCoordinates
인스턴스로 둡니다.
GeolocationPosition
인스턴스를 새로 생성하여
반환합니다:
coords
속성은 coords로,
timestamp
속성은
timestamp로 초기화하며,
[[isHighAccuracy]]
내부 슬롯은 isHighAccuracy로 설정합니다.
새로운 GeolocationPosition
은
EpochTimeStamp
timestamp와 boolean isHighAccuracy로 다음 단계를 통해 생성됩니다:
GeolocationCoordinates
인스턴스로 둡니다:
latitude
속성을 십진수의 지리 좌표로 초기화합니다.
longitude
속성을 십진수의 지리 좌표로 초기화합니다.
accuracy
속성을 0 이상의 실수로 초기화합니다. 값은 위도와 경도 값에 대해 95% 신뢰수준에 해당해야
합니다.
altitude
속성을 [WGS84]
타원체 위의 미터 단위로 초기화하거나, 구현에서 고도 정보를 제공할 수 없는 경우 null
로 설정합니다.
altitudeAccuracy
속성을 0 이상의 실수로, 또는 구현에서 고도 정보를 제공할 수 없는 경우 null
로 초기화합니다. 고도 정확도가 제공되면 95%
신뢰수준에 해당해야 합니다.
speed
속성을 0 이상의 실수 또는 구현에서 속도 정보를 제공할 수 없는 경우 null
로 초기화합니다.
heading
속성을 도(degree) 단위로 초기화하거나, 구현에서 heading 정보를 제공할 수 없는 경우 null
로 설정합니다. 호스팅 장치가
정지 상태(즉, speed
속성 값이 0)라면 heading
을
NaN
으로 초기화합니다.
GeolocationPosition
인스턴스를 새로 생성하여
반환합니다:
coords
속성은 coords로,
timestamp
속성은
timestamp로 초기화하며,
[[isHighAccuracy]]
내부 슬롯은 isHighAccuracy로 설정합니다.
WebIDL[Exposed=Window]
interface GeolocationPositionError
{
const unsigned short PERMISSION_DENIED
= 1;
const unsigned short TIMEOUT
= 3;
readonly attribute unsigned short code
;
readonly attribute DOMString message
;
};
PERMISSION_DENIED
(숫자 값 1)
POSITION_UNAVAILABLE
(숫자 값 2)
TIMEOUT
(숫자 값 3)
timeout
멤버에 지정된 시간이 경과하여 사용자 에이전트가 성공적으로
위치를 획득하지 못했습니다.
message
속성은 code
속성에 대한 개발자 친화적 텍스트 설명입니다.
이 명세서는 토큰 문자열 "geolocation"
으로 식별되는 정책 제어 기능을 정의합니다. 이에 대한 기본 허용 목록은 'self'입니다.
사용자 에이전트 자동화와 애플리케이션 테스트 목적을 위해 이 문서는 지리 위치 에뮬레이션을 정의합니다.
각 최상위 탐색 객체는 연관된 에뮬레이션 위치
데이터를 가지며,
이는 GeolocationCoordinates
,
GeolocationPositionError
또는 null을 나타내는
데이터입니다. 초기값은 null입니다.
에뮬레이션 위치 데이터 설정을 위해, navigable navigable과 emulatedPositionData가 주어졌을 때:
GeolocationCoordinates
또는 GeolocationPositionError
중 하나임을
단언합니다.
에뮬레이션
위치 데이터 가져오기를 위해,
Geolocation
geolocation이 주어졌을 때:
Document
의 노드 네비게이블로 정합니다.
비규범적으로 표시된 섹션뿐만 아니라, 이 명세서의 모든 저작 지침, 다이어그램, 예시, 주석도 모두 비규범적입니다. 이 명세서의 그 외 모든 내용은 규범적입니다.
이 문서에서 MAY, MUST, RECOMMENDED, SHOULD와 같은 키워드는 BCP 14 [RFC2119] [RFC8174] 에서 설명된 대로 해석되어야 하며, 오직 이와 같이 대문자로 표시된 경우에만 해당됩니다.
WebIDLpartial interface Navigator {
[SameObject] readonly attribute Geolocation
geolocation
;
};
[Exposed=Window]
interface Geolocation
{
undefined getCurrentPosition
(
PositionCallback
successCallback,
optional PositionErrorCallback
? errorCallback = null,
optional PositionOptions
options = {}
);
long watchPosition
(
PositionCallback
successCallback,
optional PositionErrorCallback
? errorCallback = null,
optional PositionOptions
options = {}
);
undefined clearWatch
(long watchId);
};
callback PositionCallback
= undefined (
GeolocationPosition
position
);
callback PositionErrorCallback
= undefined (
GeolocationPositionError
positionError
);
dictionary PositionOptions
{
boolean enableHighAccuracy
= false;
[Clamp] unsigned long timeout
= 0xFFFFFFFF;
[Clamp] unsigned long maximumAge
= 0;
};
[Exposed=Window, SecureContext]
interface GeolocationPosition
{
readonly attribute GeolocationCoordinates
coords
;
readonly attribute EpochTimeStamp timestamp
;
[Default] object toJSON
();
};
[Exposed=Window, SecureContext]
interface GeolocationCoordinates
{
readonly attribute double accuracy
;
readonly attribute double latitude
;
readonly attribute double longitude
;
readonly attribute double? altitude
;
readonly attribute double? altitudeAccuracy
;
readonly attribute double? heading
;
readonly attribute double? speed
;
[Default] object toJSON
();
};
[Exposed=Window]
interface GeolocationPositionError
{
const unsigned short PERMISSION_DENIED
= 1;
const unsigned short POSITION_UNAVAILABLE
= 2;
const unsigned short TIMEOUT
= 3;
readonly attribute unsigned short code
;
readonly attribute DOMString message
;
};
accuracy
GeolocationCoordinates
의 속성
§9.1
altitude
GeolocationCoordinates
의 속성
§9.2
altitudeAccuracy
GeolocationCoordinates
의 속성
§9.2
[[cachedPosition]]
Geolocation
의 내부 슬롯
§6.1
clearWatch()
Geolocation
의 메서드
§6.4
code
GeolocationPositionError
의 속성
§10.2
coords
GeolocationPosition
의 속성
§8.1
enableHighAccuracy
PositionOptions
의 멤버
§7.1
geolocation
Navigator
의 속성
§5.
Geolocation
인터페이스
§6.
"geolocation"
§3.4
GeolocationCoordinates
인터페이스
§9.
GeolocationPosition
인터페이스
§8.
GeolocationPositionError
인터페이스
§10.
getCurrentPosition
Geolocation
의 메서드
§6.2
heading
GeolocationCoordinates
의 속성
§9.3
[[isHighAccuracy]]
GeolocationPosition
의 내부 슬롯
§8.4
latitude
GeolocationCoordinates
의 속성
§9.1
longitude
GeolocationCoordinates
의 속성
§9.1
maximumAge
PositionOptions
의 멤버
§7.3
message
GeolocationPositionError
의 속성
§10.3
PERMISSION_DENIED
§10.1
POSITION_UNAVAILABLE
§10.1
PositionCallback
§6.
PositionErrorCallback
§6.
PositionOptions
딕셔너리
§7.
speed
GeolocationCoordinates
의 속성
§9.4
timeout
PositionOptions
의 멤버
§7.2
TIMEOUT
§10.1
timestamp
GeolocationPosition
의 속성
§8.2
[[watchIDs]]
Geolocation
의 내부 슬롯
§6.1
watchPosition
Geolocation
의 메서드
§6.3
EpochTimeStamp
allow
속성 (iframe
요소)
Document
용)
iframe
요소
list
용)
list
용)
map
용)
list
용)
list
용)
permission
용)
permission
용)
name
(PermissionDescriptor
용)
PermissionDescriptor
boolean
타입
[Clamp]
확장 속성
[Default]
확장 속성
DOMString
인터페이스
double
타입
[Exposed]
확장 속성
long
타입
object
타입
[SameObject]
확장 속성
[SecureContext]
확장 속성
undefined
타입
unsigned long
타입
unsigned short
타입
이 절은 비규범적입니다.
이 명세서는 Aza Raskin의 연구, Google Gears 지리 위치 API, LocationAware.org 등 업계의 이전 작업을 기반으로 합니다.
Alec Berntson, Alissa Cooper, Steve Block, Greg Bolsinga, Lars Erik Bolstad, Aaron Boodman, Dave Burke, Chris Butler, Max Froumentin, Shyam Habarakada, Marcin Hanclik, Ian Hickson, Brad Lassey, Angel Machin, Cameron McCormack, Daniel Park, Stuart Parmenter, Olli Pettay, Chris Prince, Arun Ranganathan, Carl Reed, Thomas Roessler, Dirk Segers, Allan Thomson, Martin Thomson, Doug Turner, Erik Wilde, Matt Womer, Mohamed Zergaoui에게도 감사를 전합니다.
이 절은 비규범적입니다.
2021년 최초 공개 작업 초안 이후 Geolocation에는 다음과 같은 규범적 변경이 있었습니다:
2016년 2판 출판 이후 이 명세서에는 다음과 같은 실질적 변경이 있었습니다:
errorCallback
이 이제 nullable입니다.
callbacks
는 더 이상 "EventHandler" 객체(즉, .handleEvent()
메서드를 가진 객체)로 취급되지 않으며, 이제
IDL 콜백 함수로만 처리됩니다.
[NoInterfaceObject]
를 사용하지 않으므로 Geolocation
및 이 명세서의 다른 인터페이스가 전역
범위에 있습니다. 또한 인터페이스 이름이 NavigatorGeolocation*
에서 Geolocation*
로 변경되었습니다.
전체 변경 내역은 커밋 기록을 참조하세요.