React Native獲取地理位置(獲取具體城市、經緯度)
阿新 • • 發佈:2019-01-25
並不是所有的APP都要獲取你當前的地理位置的,但是有的APP對這方面是特別重要的,例如催收的行業,準確獲取借款人的位置,才能不撲空~~
基本上實現的原理其實很簡單,前端要做的事情就是每次開啟APP的時候獲取一下手機當前的位置,或者每隔幾分鐘就重新獲取一次。
注:RN提供的方法只能獲取到經緯度,不會直接給你具體的城市或者街道,如果要的話,可以用百度或者高德的逆地理編碼介面去轉,不過一般前端只是傳經緯度給後端,具體後端要拿去做什麼操作,就不歸前端管了。當然,如果你的APP要顯示你的當前城市,你也可以用介面轉然後顯示出來。
下面是我簡單實現的程式碼:
componentDidMount() { // APP啟動的時候獲取地理位置 this.getPosition(); } /** 獲取地理位置(經緯度) */ getPosition = (): void => { /** 獲取地理位置 */ navigator.geolocation.getCurrentPosition( (position: any) => { // console.warn('成功:' + JSON.stringify(position)); const positionData: any = position.coords; // 經度:positionData.longitude // 緯度:positionData.latitude // 最後一步 todo:高德 || 百度地圖逆地理編碼轉~~具體就是調個介面把經緯度丟進去就行了 }, (error: any) => { console.warn('失敗:' + JSON.stringify(error.message)) }, { // 提高精確度,但是獲取的速度會慢一點 enableHighAccuracy: true, // 設定獲取超時的時間20秒 timeout: 20000, // 示應用程式的快取時間,每次請求都是立即去獲取一個全新的物件內容 maximumAge: 1000 } ); }