为什么React Native Maps不显示我的用户位置?

时间:2019-03-17 04:37:03

标签: android react-native react-native-maps

完全困惑。

我已经实现了React Native Maps。 我将showsUserLocation道具设置为true。 在IOS / Xcode中,我将键/值添加到了info.plist

<key>NSLocationWhenInUseUsageDescription</key>
    <string>a description lives here and stuff</string>

通过添加.gpx文件,我可以模拟用户位置。

但是在 Android 中,我无法获取showsUserLocation,showsMyLocationButton,showsCompass道具来工作。

仿真器或An / Studio中是否有允许此设置的设置?

MapView:

<MapView
    provider={PROVIDER_GOOGLE}
    followsUserLocation={true}
    showsUserLocation={true}
    showsMyLocationButton={true}
    showsCompass={true}
    toolbarEnabled={true}
    zoomEnabled={true}
    rotateEnabled={true}

    style={{flex: 1}}
    region={{
    latitude: 51.4718,
    longitude: -0.0749,
    latitudeDelta: 0.01,
    longitudeDelta: 0.01
    }}
>
    { markers.map((each, i) => {
        console.log('each: ', each);
        return ( 
            <MapView.Marker
                key={i}
                title={each.title}
                description={each.description}
                coordinate={{ latitude: each.latitude, longitude: each.longitude }}
                />
        )
    }) }
</MapView>

我也曾尝试为IOS模拟器提供经度/纬度,但是“调试”>“位置”>“自定义位置”将使我可以编辑 EITHER Lat 或 Long。不是都。很奇怪。

2 个答案:

答案 0 :(得分:0)

我在Android中也遇到了同样的问题。因此,我做了一个自定义的showUserlocation。我在哪里做按钮

              <View >
                    <TouchableOpacity onPress={() => this.find_me()} >
                        <Image style={{ width: 30, height: 30 }} 
                            source={require('../resources/img/icon_pin_dark.png')} />

                    </TouchableOpacity>
                </View>

呈现此功能。

find_me() {

        this.show = true
        navigator.geolocation.getCurrentPosition((position) => {

            this.region = {
                latitude: position.coords.latitude,
                longitude: position.coords.longitude,
                latitudeDelta: LATITUDE_DELTA,
                longitudeDelta: LONGITUDE_DELTA
            }
            this.userLocation = {
                latitude: position.coords.latitude,
                longitude: position.coords.longitude
            }
          
            console.log('yeah')
          

          

        }, 
        (error) => {
           
            console.log("Location provider is not enable")
        },
        
        )
    }

答案 1 :(得分:0)

    _onMapReady = () => this.setState({marginBottom: 0})

.........

<MapView
    style={{flex: 1, marginBottom: this.state.marginBottom}}
    onMapReady={this._onMapReady}

,您的初始利润率底部应为1。

这对我来说很好。