2016-04-08 31 views
1

RN'de yeni başlayan biriyim ve MapView ve geolocalizer ile ilgili bazı sorunlar yaşıyorum. Birisi yardımcı olabilir? Aslında birinde 2 sayı var: Mobil coğrafi konumu bilmek ve lat/long ile bir harita oluşturmak istiyorum. Yani, burada ben çalıştığım şey: önerilen koduyla coğrafi konumu elde etmek için componentWillMount fonksiyonunu kullanarak: (önce coords devleti kurmayı deneyin işlemek için bu kullanarak)Android (RN): Oluşturulmadan önce MapView uzun/uzun olarak nasıl ayarlanır? Bölge güncelleştirme hatası alınıyor

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

State initialPosition doğru olarak ayarlanır, ancak enlem ve boylam durumunu iyi bir şekilde ayarlamak gerekir JSON.stringify (position) diğer birçok özelliğe sahip bir dizedir, bu yüzden x = position (işlevinin) veya x = bir şeyi nasıl yapabilirim navigator.geolocation return, çünkü this.setState sonra bir var x = initialPosition koymaya çalıştığımda (tedavi etmek ve sadece x/latinden sonra lat/long olsun) kod, componentWillMOunt sona erene kadar çalışmadıysa, herhangi bir değer alırsınız. BİLMİYORUM.

Neden bunu deniyorum? Çünkü ben ile MapView rerender çalıştığınızda yeni enlem/boylam devlet bu hatası alıyorum başlatıldı dan:

Android: AIRMap: Bir bakış mülkiyet 'bölgesini' güncellenirken hata yaparken tarafından yönetilen https://github.com/lelandrichardson/react-native-maps/issues/140

Not: Ben post/post (önermek değil) olarak lat/uzun Delta var Bunu nasıl yapabilirim? Eğer yapmak istediğim yol da mümkün ise, herhangi bir öneri takdir edilecektir. Teşekkürler!

cevap

0

LatDelta ve lonDelta'ya ihtiyacınız var. Çalışıyorsa değilse, ekleyin android/app/src içine

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

daha/ana/AndroidManifest.xml

0

Sen componentDidMount geçerli konumu ayarlayabilirsiniz().

<MapView 
    provider={PROVIDER_GOOGLE} 
    style={StyleSheet.absoluteFillObject} 
    region={this.state.region}/> 
:

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 }, 
    ); 
} 

yılında işlemek, aşağıda gibi kullanmak