react native 지리 적 위 치 를 가 져 오 는 방법 예제

react native 홈 페이지 에서 이 api Geolocation 을 소 개 했 습 니 다.그러나 이 api 는 경위도 로 돌아 갈 수 밖 에 없 기 때문에 경위도 를 역 지리 적 위 치 를 통 해 의 미 를 바 꿔 야 합 니 다http://recode.ditu.aliyun.com/jsdoc/geocode_api.html이 아 리 의 개방 인 터 페 이 스 를 통 해
react native 에서 우리 가 사용 하 는 것 은 react native 가 자체 적 으로 가지 고 있 는 api 포 지 셔 닝 기능 으로 제3자 js 를 도입 할 필요 가 없습니다.
react native 포 지 셔 닝 은 Geolocation 이라는 모듈 을 통 해 이 루어 집 니 다.Geolocation 에 관 한 지식 을 더 알 고 싶 으 면 아래 Geolocation 을 클릭 하여 알 아 보 세 요.여기 서 우 리 는 주로 그의 몇 가지 방법 을 알 고 있 습 니 다.
static getCurrentPosition(geo_success, geo_error?, geo_options?)
Invokes the success callback once with the latest location info. Supported options: timeout (ms), maximumAge (ms), enableHighAccuracy (bool) On Android, this can return almost immediately if the location is cached or request an update, which might take a while.
static watchPosition(success, error?, options?)
Invokes the success callback whenever the location changes. Supported options: timeout (ms), maximumAge (ms), enableHighAccuracy (bool), distanceFilter(m)
static clearWatch(watchID)
첫 번 째 방법 은 첫 번 째 포 지 셔 닝 시의 위치 정 보 를 얻 는 것 입 니 다.첫 번 째 는 성공 시의 리 턴 함수 이 고 error 시의 리 턴 이 며 세 번 째 는 전송 상태 입 니 다.
요청 성공 함수 중 다음 속성 이 있 습 니 다:
경도:coords.longitude위도:coords.latitude정확도:coords.accuracy해발:coords.altitude해발 정확도:coords.altitudeAcuracy행진 방향:coords.heading지상 속도:coords.speed타임스탬프:new Date(position.timestamp)요청 실패 함수 중 4 가지 상황(err.code 상태 값):
1.사용자 에 게 위치 추적 을 거부 합 니 다.
2 일시 적 으로 위치 정 보 를 얻 지 못 함
3.요청 시간 초과
4 알 수 없 는 오류
세 번 째 options 는 선택 가능 한 매개 변수 입 니 다.속성 은 다음 과 같 습 니 다.
enableHighAccuracy―브 라 우 저 에 게 높 은 정밀도 의 위 치 를 가 져 오 라 고 지시 합 니 다.기본 값 은 false 입 니 다.열 리 면 아무런 영향 이 없 을 수도 있 고 브 라 우 저 로 하여 금 더 정확 한 위치 데 이 터 를 얻 는 데 시간 이 오래 걸 릴 수도 있 습 니 다.
timeout―지리 적 위 치 를 가 져 오 는 시간 초과 시간 을 지정 하고 시간 제한 을 하지 않 습 니 다.단 위 는 밀리초 이다.
maximumage―최 장 유효기간,지리 적 위 치 를 반복 적 으로 가 져 올 때 이 매개 변 수 는 얼마나 자주 위 치 를 다시 가 져 올 지 지정 합 니 다.기본 값 은 0 입 니 다.브 라 우 저 는 즉시 위 치 를 다시 계산 해 야 한 다 는 뜻 입 니 다.

static watchPosition(success, error?, options?) 
위치 정 보 를 여러 번 바 꾸 었 을 때 만 실 행 됩 니 다.일반적으로 실 행 될 가능성 은 사용자 가 여러 번 데 이 터 를 갱신 할 수 있 습 니 다.예 를 들 어 한 사람 이 다른 도시 로 운전 할 때 감청 함 수 를 설정 하면 watchid 가 다 르 면 계속 실 행 됩 니 다.
캐 시 상황 이 발생 할 수 있 기 때문에 Geolocation 은 캐 시 를 지 울 수 있 는 방법 인 watchPosition()을 제공 합 니 다.변경 방법 은 지난번 위치 정 보 를 지 울 때 사 용 됩 니 다.
참,react native 의 포 지 셔 닝 기능 을 시작 하려 면 안 드 로 이 드 사용자 라면 먼저 AndroidManifest.xml 에 다음 권한 을 추가 해 야 합 니 다.

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
구체 적 실현

import Geolocation from 'Geolocation';

  ......

 getlocal() {
  Geolocation.getCurrentPosition(
   val => {
    let ValInfo =
     '  :' +
     val.coords.speed +
     '
:' + val.coords.longitude + '
:' + val.coords.latitude + '
:' + val.coords.accuracy + '
:' + val.coords.heading + '
:' + val.coords.altitude + '
:' + val.coords.altitudeAccuracy + '
:' + val.timestamp; this.setState({ LocalPosition: ValInfo }); console.log(" :"+`${val.coords.longitude},${val.coords.latitude}`) GET_GPRS({ "l":`${val.coords.latitude},${val.coords.longitude}`, "type":111, }).then(res => { console.log(JSON.stringify(res)) }) }, val => { let ValInfo = ' :' + val; this.setState({ LocalPosition: ValInfo }); // }, ); }
여기 GETGPRS 는 자체 적 으로 포 장 된 fech 요청 입 니 다.
위치 접근 권한 켜 기
인쇄 결 과 는 다음 과 같 습 니 다.

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기