Geolocation

설명

  • 디바이스의 GPS 센서에 의해 제공되는 geolocatino 객체에 접근하는 API

제약사항

  • Geolocation API의 플랫폼별 제약사항은 다음과 같다.

Android

Coordinates
  • altitudeAccuracy: 단말기에서 지원하지 않는다. 항상 null 이다.
geolocationOptions
  • 안드로이드 2.x 버전의 가상기기에서는 enableHighAccuracy 을 ‘true’ 로 설정해야만 위치정보를 가져올 수 있다.

iOS

Position
  • timestamp: milliseconds 단위 대신에 seconds 단위를 쓴다
geolocationOptions
  • frequency:  milliseconds 단위로 위치 정보를 감지하는 특정 시간 간격. W3C 스펙을 따르지 않고 있기 때문에 곧 삭제될 예정이다.

환경 설정

Android

  • app/res/xml/config.xml
<plugin name="Geolocation" value="org.apache.cordova.GeoBroker" />
  • app/AndroidManifest
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS" />

iOS

  • App/Supporting Files/config.xml
    <feature name="Globalization">
        <param name="ios-package" value="CDVGlobalization"/>
    </feature>

관련 함수

geolocation.getCurrentPosition

  • 단말기의 현재 위치를 Position 객체에 담아 구한다.
navigator.geolocation.getCurrentPosition(geolocationSuccess, 
                                         [geolocationError], 
                                         [geolocationOptions]);

geolocation.watchPosition

  • 단말기의 위치 변동을 감지한다.
var watchId = navigator.geolocation.watchPosition(geolocationSuccess,
                                                  [geolocationError],
                                                  [geolocationOptions]);


geolocation.clearWatch

  • watchID 파라미터를 통해 단말기의 위치 변동 감지를 중단시킬 수 있다
navigator.geolocation.clearWatch(watchID);

파라미터

geolocationSuccess

  • 위치 정보를 성공적으로 가져왔을 경우, 수행하는 사용자 정의 함수
  • Parameters :
유형설명타입비고
position  단말기의 위치 정보 Position

geolocationError

  • geolocation 관련 함수 수행 시, 에러가 발생했을 경우 수행하는 함수
  • Parameters :
유형설명타입비고
error 단말기의 에러 정보PositionError

geolocationOptions

  • 위치 정보를 구할 경우, 선택적으로 설정할 수 있는 옵션
  • Options :

# frequency: milliseconds 단위로 특정 간격간에 위치 정보를 설정한다. W3C 스펙을 따르지 않고 있기 때문에, 앞으로 phoneGap에서 지원하지 않을 예정이다. (Number) (기본: 10000) # enableHighAccuracy: 어플리케이션이 가장 정확한 정보를 감지하도록 설정하는 옵션이다. (Boolean) # timeout: 위치 감지 요청의 제한시간이다.(geolocation.getCurrentPosition, geolocation.watchPosition 요청 후, geolocationSuccess이 호출될 때까지의 시간.) (Number) # maximumAge: milliseconds 단위로 위치 정보를 저장하고 있는 시간. (Number)

Objects

Position

  • geolocation API들을 통해 구해지는 위치 정보를 갖고 있는 객체
유형설명타입비고
coords 위성 좌표Coordinates
timestamp milliseconds 단위로 위치 정보를 구하는 특정 시간 간격DOMTimeStamp

PositionError

  • 에러가 발생하였을 때, 에러 정보를 가지는 객체
유형설명비고
code 에러 코드는 아래와 같다
message 에러 메시지를 나타낸다
  • Constants :

PositionError.PERMISSION_DENIED: 권한 부족. PositionError.POSITION_UNAVAILABLE: 위치를 감지할 수 없음. PositionError.TIMEOUT: 감지 시간 초과.

Coordinates

  • Position 객체의 coords 속성 객체이며, 위성 좌표의 정보를 가지고 있는 객체
유형설명타입비고
latitude 위도Number
longitude 경도Number
altitude 타원체로부터 위치까지의 미터 단위 높이 Number
accuracy 위도, 경도(미터 단위의 정확도)Number
altitudeAccuracy 고도(미터 단위의 정확도)Number
heading 진북 방향을 시계 방향의 각도로 나타낸 값 Number
speed 초 단위의 단말기 속도(ground speed)Number

참고 자료

 
egovframework/hyb3.9/hrte/deviceapi/geolocation.txt · 마지막 수정: 2023/12/21 05:21 (외부 편집기)
 
이 위키의 내용은 다음의 라이센스에 따릅니다 :CC Attribution-Noncommercial-Share Alike 3.0 Unported
전자정부 표준프레임워크 라이센스(바로가기)

전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.
Recent changes RSS feed CC Attribution-Noncommercial-Share Alike 3.0 Unported Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki