2016-04-08 35 views
1

我是RN的初學者,我在MapView和geolocalizer中遇到了一些問題。有人可以幫忙嗎? 其實其中2個問題之一: 我想知道移動地理位置和呈現其經緯度的地圖。所以,這裏就是我想: 使用componentWillMount函數來獲取與建議代碼的地理位置:(以此來嘗試與COORDS設置前的狀態呈現)Android(RN):如何在渲染之前設置MapView的緯度/經度?獲取區域更新錯誤

navigator.geolocation.getCurrentPosition(
 
(position) => { 
 
var initialPosition = JSON.stringify(position); 
 
this.setState({initialPosition}); 
 
}, 
 
(error) => alert(error.message), 
 
{enableHighAccuracy: true, timeout: 20000, maximumAge: 1000} 
 
);

狀態initialPosition設置正確,但我需要設置緯度和經度狀態以及beucase JSON.stringify(position)是一個具有許多其他屬性的字符串,所以我如何做x = position(函數的)或x = navigator.geolocation返回,因爲當我嘗試在this.setState之後放置一個var x = initialPosition(從而只處理並從x獲得緯度/經度)時,它不會接收任何值,例如代碼在componentWillMOunt結束之前無法工作。 IDK。

爲什麼我在試這個?因爲當我嘗試重新呈現的MapView新的經/緯從狀態初始化的我得到這個錯誤:

安卓AIRMAP:錯誤而鑑於更新財產「區域」託管 https://github.com/lelandrichardson/react-native-maps/issues/140

注:我確實有經緯度/長三角洲,作爲帖子建議(不是我的文章) 我該怎麼做? Idk如果我想要的方式也可以,任何建議將不勝感激。謝謝!

回答

0

您需要latDelta和lonDelta。如果它沒有運行,增加更多的

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/> 

到Android設備/應用/ src目錄/主/ AndroidManifest.xml中

0

您可以在componentDidMount當前位置()。

componentDidMount() { 
    navigator.geolocation.getCurrentPosition(
     position => { 
      this.setState({ 
       region: { 
        latitude: position.coords.latitude, 
        longitude: position.coords.longitude, 
        latitudeDelta: 0.0922, 
        longitudeDelta: 0.0422, 
       } 
      }); 
     }, 
     (error) => console.log(error.message), 
     { enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 }, 
    ); 
} 

在渲染,使用如下:

<MapView 
    provider={PROVIDER_GOOGLE} 
    style={StyleSheet.absoluteFillObject} 
    region={this.state.region}/> 
相關問題