관리 메뉴

웹개발자의 기지개

현재 GPS 좌표값 얻기 1 - navigator.geolocation 본문

javascript

현재 GPS 좌표값 얻기 1 - navigator.geolocation

http://portfolio.wonpaper.net 2018. 12. 28. 23:52

자바스크립트 자체 객체인 navigator.geolocation 으로 웹브라우저상으로도 직접 현재 GPS 좌표값을 얻을 수가 있다.

다만, 과거엔 같은 이 객체녀석으로 좀더 손쉽게 좌표값을 무난하게 알 수 가 있었는데, 

지금은 보안기능 강화, 개인정보 등등해서 보다 엄격해진 덕분인지 그 좌표값을 얻는 방법이 조금더 까다로워졌다.


일단 우선적으로는 http 기본 80 프로토콜으로는 이 객체를 이용해서 열람을 할 수가 없다.


무조건 https 보안서버를 주소여야 하고, 크롬 브라이져의 경우 GPS 위치정보 허용 기능을 켜야 정상적으로 좌표값을 볼 수 가 있다.


<script>
var lat = "";
var lon = "";


/*
var posOptions = {
  enableHighAccuracy: true,  // 정확도
  timeout: 1000,                 // 1초가량
  maximumAge: Infinity
};
*/


var posOptions = {
  enableHighAccuracy: false, 
  timeout: 10000,
  maximumAge: 60000
};


function success(pos) {
  var crd = pos.coords;


  console.log('Your current position is:');
  console.log('Latitude : ' + crd.latitude);
  console.log('Longitude: ' + crd.longitude);
  console.log('More or less ' + crd.accuracy + ' meters.');


  this.lat = crd.latitude;
  this.lon = crd.longitude;


  alert(lat + " / " + lon);
};


function error(err) {
  console.warn('ERROR(' + err.code + '): ' + err.message);
  alert('ERROR(' + err.code + '): ' + err.message);
};


if (navigator.geolocation) {
 navigator.geolocation.getCurrentPosition(success, error, posOptions);
}

//  alert("내용부분 : " + this.lat + " / " + this.lon);
</script> 





위 소스상에서 enableHighAccuracy: false 를 두고, timeout: 10000, 10초정도로 딜레이를 넉넉하게 주면 현재 GPS 좌표값을 좀더 잘 얻을 수 있게 도와 준다.





Comments