• 회원가입
  • 로그인
  • 구글아이디로 로그인

[api] HTML5 - Geolocation - 사용자위치 (= 사용자 지리위치 = 지오로케이션)

목차
  1. Geolocation 예제 - 사용자위치 구글맵에 표시
  2. Geolocation 정의
  3. Geolocation 예제 - 사용자위치 표시 : (거부/오류) 처리 X
  4. Geolocation 예제 - 사용자위치 표시 : (거부/오류) 처리 O
  5. Geolocation 예제 - 정적인 지도에 표시
  6. getCurrentPosition() 메서드
  7. Geolocation 객체 유용한 메서드

 

Geolocation 예제 - 사용자위치 구글맵에 표시

 

<button onclick="getLocation()">클릭</button></p>

<div id="mapbox"></div>


<script src="https://maps.google.com/maps/api/js?key=구글맵발급키"></script>

<script>

var x=document.getElementById("demo");

function getLocation()

{

  if (navigator.geolocation)

    {

    navigator.geolocation.getCurrentPosition(hzCoords,hzError);

    }

  else{x.innerHTML="Geolocation 제공 않는 브라우저는 개나 줘버려.";}

}


function hzCoords(position)

{

  var lat=position.coords.latitude;

  var lon=position.coords.longitude;

  var latlon=new google.maps.LatLng(lat, lon)

  var mapbox=document.getElementById('mapbox')

  mapbox.style.height='250px';

  mapbox.style.width='100%';


  var hzOptions=

  {

  center:latlon,zoom:14,

  mapTypeId:google.maps.MapTypeId.ROADMAP,

  mapTypeControl:false,

  navigationControlOptions:{style:google.maps.NavigationControlStyle.SMALL}

  };

  var map=new google.maps.Map(document.getElementById("mapbox"),hzOptions);

  var marker=new google.maps.Marker({position:latlon,map:map,title:"당신 위치 !!"});

}


function hzError(error)

{

  switch(error.code) 

    {

    case error.PERMISSION_DENIED:

      x.innerHTML="사용자가 정보제공 거부"

      break;

    case error.POSITION_UNAVAILABLE:

      x.innerHTML="위치정보 이용 불가"

      break;

    case error.TIMEOUT:

      x.innerHTML="위치정보 얻기 요청 시간초과"

      break;

    case error.UNKNOWN_ERROR:

      x.innerHTML="예상치 못한 에러 발생"

      break;

    }

}

</script>

 

구글맵 API키 발급: https://cloud.google.com/maps-platform/?hl=ko#products

 

Geolocation 정의

 

HTML Geolocation API는 사용자의 지리적 위치를 얻는 데 사용.

 


 

1.

개인정보 침해 소지가 있어, 사용자가 거부하면 이용 불가.


2.

지리위치는 스마트 폰과 같이 GPS 지원 장치가 가장 정확.

 

3.

IE9 이상 주요 최신 브라우저 모두 지원.

단, 크롬 50이상 최신 버전은 https 프로토콜에서만 가능.

 

4.

활용 예:


사용자 지역정보 제공
사용자 관심지점 표시
단계별 네비게이션  (GPS활용)


 

Geolocation 예제 - 사용자위치 표시 : (거부/오류) 처리 X

 

<button onclick="homzzang()">클릭</button>


<p id="demo"></p>


<script>

var x = document.getElementById("demo");


function homzzang() {

  if (navigator.geolocation) {

    navigator.geolocation.getCurrentPosition(hzCoords);

  } else { 

    x.innerHTML = "Geolocation 미지원 브라우저는 개나 줘버려.";

  }

}


function hzCoords(position) {

  x.innerHTML = "위도 : " + position.coords.latitude + 

  "<br>경도 : " + position.coords.longitude;

}

</script>

 

결과보기

getCurrentPosition() 메서드 :사용자 지리위치 반환

 

Geolocation 예제 - 사용자위치 표시 : (거부/오류) 처리 O

 

<button onclick="homzzang()">클릭</button>


<p id="demo"></p>


<script>

var x = document.getElementById("demo");


function homzzang() {

  if (navigator.geolocation) {

    navigator.geolocation.getCurrentPosition(hzCoords,hzError);

  } else { 

    x.innerHTML = "Geolocation 미지원 브라우저는 개나 줘버려.";

  }

}


function hzCoords(position) {

  x.innerHTML = "위도 : " + posisiton.coords.latitude + 

  "<br>경도 : " + position.coords.longitude;

}

 

function hzError(error)

{

  switch(error.code) 

    {

    case error.PERMISSION_DENIED:

      x.innerHTML="사용자가 정보제공 거부"

      break;

    case error.POSITION_UNAVAILABLE:

      x.innerHTML="위치정보 이용 불가"

      break;

    case error.TIMEOUT:

      x.innerHTML="위치정보 얻기 요청 시간초과"

      break;

    case error.UNKNOWN_ERROR:

      x.innerHTML="예상치 못한 에러 발생"

      break;

    }

 

}

</script>

 

결과보기

 

Geolocation 예제 - 정적인 지도에 표시

 

function hzCoords(position) {

  var latlon = position.coords.latitude + "," + position.coords.longitude;


  var img_url = "https://maps.googleapis.com/maps/api/staticmap?center=

  "+latlon+"&zoom=14&size=400x300&sensor=false&key=구글맵발급키";


  document.getElementById("mapbox").innerHTML = "<img src='"+img_url+"'>";

}

 

hzCoords() 함수를 위 함수로 교체

 

getCurrentPosition() 메서드

성공 시, 사용자위치정보 담긴 coords (좌표) 객체 반환


coords.latitude

위도. 10진수로 표현. (항상 반환)

 

coords.longitude

경도. 10진수로 표현. (항상 반환)

 

coords.accuracy

위치 정확성 (항상 반환)

 


 

coords.altitude

평균 해수면 위의 고도. 미터로 표현. (가능한 경우 반환)

 

coords.altitudeAccuracy

위치의 고도 정확도 (가능한 경우 반환)

 

coords.heading

향하는 방향. 시계방향으로 동서남북 표시 (0도:북 / 90도:동 / 180도: 남 / 270도: 서)  (가능한 경우 반환)

 

coords.speed
초당 미터 속도 (가능한 경우 반환)

 

timestamp

응답 날짜/시간 (가능한 경우 반환)

 

 

Geolocation 객체 유용한 메서드

 

watchPosition()

사용자 현재위치 반환 후, 사용자 이동 시 업데이트 된 위치를 계속 반환. (예: 자동차의 GPS)

 

clearWatch()

watchPosition() 메서드를 중지시킴.

 


[예제]

 

<button onclick="homzzang()">클릭</button>


<p id="demo"></p>


<script>

var x = document.getElementById("demo");


function homzzang() {

  if (navigator.geolocation) {

    navigator.geolocation.watchPosition(hzCoords);

  } else { 

    x.innerHTML = "Geolocation 지원 않는 브라우저는 개나 줘버려.";

  }

}

    

function hzCoords(position) {

    x.innerHTML="위도 : " + position.coords.latitude + 

    "<br>경도 : " + position.coords.longitude;

}

</script>

 

결과보기

※ 예제 확인하려면, 스마트 폰과 같은 정확한 GPS 장치 필요.

 


분류 제목
attribute HTML - oncuechange 속성 - 트랙의 큐(캡션/자막) 변경 시 실행 (= oncuechange속…
attribute HTML - oncut 속성 - 요소 내용 잘라내기 시 실행 (= oncut속성 = 온컷속성) ※ oncut…
attribute HTML - ondblclick 속성 ★ - 요소 더블클릭 이벤트 시 실행 (= ondblclick속성 = …
attribute HTML - ondrag 속성 - 드래그 이벤트 시 실행할 코드 지정 (= ondrag속성 = 온드래그속성)…
attribute HTML - ondragend 속성 - 드래그 종료 시 실행 (= ondragend속성 = 온드래그엔드속성)…
attribute HTML - ondragenter 속성 - 드래그 한 요소가 드롭박스에 들어갈 때 실행 (= ondragen…
attribute HTML - ondragleave 속성 - 드래그 한 요소가 드롭박스 이탈 시 실행 (= ondragleav…
attribute HTML - ondragover 속성 - 드래그 한 요소가 드롭박스 위에 위치 시 실행 (= ondragov…
attribute HTML - ondragstart 속성 - 드래그 시작 시 실행 (= ondragstart속성 = 온드래그스…
attribute HTML - ondrop 속성 - 드래그 한 요소를 드롭 할 때 실행 (= ondrag속성 = 온드래그속성)…
attribute HTML - ondurationchange 속성 - 재생시간 데이터가 변경될 때 실행 (= onduratio…
attribute HTML - onemptied 속성 - 미디어 소스가 비어있거나 삭제된 경우에 실행 (= onemptied속…
attribute HTML - onended 속성 - 미디어 재생 끝날 때 실행 (= onended속성 = 온엔디드속성) ※ …
attribute HTML - onerror 속성 - 미디어파일 로딩 에러 시 실행 (= onerror속성 = 온에러속성) ※…
attribute HTML - onfocus 속성 ★ - 포커스 설정 시 실행 (= onfocus속성 = 온포커스속성) ※ o…
attribute HTML - onhashchange 속성 - 링크 해시값 변경 시 실행 (= onhashchange속성 = …
attribute HTML - oninput 속성 ★ - 사용자 입력값 변경 시 바로 실행 (= oninput속성 = 온인풋속…
attribute HTML - oninvalid 속성 - 유효하지 않은 입력값 제출 시 실행 (= oninvalid속성 = 온…
attribute HTML - onkeydown 속성 - 키보드키 내려갈 때 실행 (= onkeydown속성 = 온키다운속성)…
attribute HTML - onkeypress 속성 - [페기예고] 키보드키 눌렀을 때 실행 (= onkeypress속성 …
12/18
목록
찾아주셔서 감사합니다. Since 2012