JavaScript 지리위치 API geolocation
navigator.geolocation
객체를 이용하면 사용자들의 위치 정보를 웹 사이트에서 사용할 수 있습니다. (IE9 이상). 웹브라우저는 사용자의 위치를 결정하기 위해 IP주소, 무선 네트워크, 셀룰러 데이터, GPS 등을 활용하게 되며 사용자의 브라우저 설정에 따라 개발자가 원하는 수준만큼 정확하지 않을 수 도 있습니다.
geolocation 객체 : 지리위치 API
geolocation 객체의 기본 사용법입니다.
/* geolocation 객체 */
// 사용자의 위치 정보를 리턴한다.
// @param {callback} success - 좌표를 얻어왔을 때 호출될 함수의 이름
// @param {callback} fail - 좌표를 얻지 못했을 때 호출될 함수의 이름
navigator.geolocation.getCurrentPosition(success, fail);
function success(location) {
// Position 객체가 콜백함수에 전달된다.
location.coords.latitude;
}
function fail(msg) {
// PositionError 객체가 콜백함수에 전달된다.
msg.code;
}
위치 정보 사용 가능 여부를 확인하고 요청하는 방법입니다.
/* 사용자 웹 브라우저의 geolocation 지원 여부를 확인 */
if (navigator.geolocation) {
// 해당 기능이 지원되는 경우
navigator.geolocation.getCurrentPosition(success, fail);
} else {
// 기능을 지원하지 않거나 비활성화 된 경우
}
/* Modernizr 사용 시 */
if (Modernizr.geolocation) {
// 브라우저가 지원할 경우
navigator.geolocation.getCurrentPosition(success, fail);
} else {
// 브라우저가 지원하지 않거나, 기능이 꺼져있다
}
Position 객체 및 Error 객체
/* 콜백함수에 전달되는 Position 객체 */
Position.coords.latitude // 위도
Position.coords.longitude // 경도
Position.coords.accuracy // 정확도
Position.coords.altitude // 고도
Position.coords.altitudeAccuracy // 고도 정확도
Position.coords.heading // 정북에서의 각도
Position.coords.speed // 초당 진행속도
Position.coords.timestamp // 정보가 생성된 시각
/* 콜백함수에 전달되는 PositionError 객체 */
PositionError.code // 오류번호. 1-권한없음 / 2-사용불가능 / 3-타임아웃
PositionError.message // 오류메시지