Почему React Native Maps не отображает мое местоположение пользователя? - PullRequest
0 голосов
/ 17 марта 2019

Полностью сбит с толку.

У меня реализованы React Native Maps.У меня showsUserLocation опора установлена ​​в true.В IOS / Xcode я добавил ключ / значение в info.plist

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

И, добавив файл .gpx, я смог смоделировать местоположение пользователя.

Но в Android Я не могу получить showUserLocation, показывает MyLocationButton, показывает, что Compass поддерживает работу.

Есть ли на эмуляторе или в 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 lat / lng, но «Отладка»> «Расположение»> «Пользовательское местоположение» позволит мне редактировать EITHER Lat или Длинный.Не оба.Очень странно.

Ответы [ 2 ]

0 голосов
/ 24 апреля 2019
    _onMapReady = () => this.setState({marginBottom: 0})

.........

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

и ваше начальное поле Bottom должно быть равно 1.

Это отлично сработало для меня.

0 голосов
/ 31 марта 2019

Я столкнулся с такой же проблемой в 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")
        },
        
        )
    }
...