反应原生。我找不到我当前的位置(地理定位)IOS

时间:2017-02-21 20:26:37

标签: ios xcode react-native geolocation react-native-maps

我需要从GPS访问我的位置。所以,我将地理位置导入项目。

首先,我创建如下(安装反应原生地图,已经链接)

我刚刚在我的Xcode中添加了NSLocationWhenInUseUsageDescription

另外,我刚刚在我的Xcode中使用了libRCTGeolocation.a

然后,我刚从Airbnb阅读mapview中的地图视图。告诉我设置showUserLocation将其设置为“true”。当设置为true时将要求用户访问 位置。

参考:https://github.com/airbnb/react-native-maps/blob/master/docs/mapview.md

最后,这不是要求任何访问 地点。所以,我不知道为什么。我找不到我当前的位置。

这是我从头开始描述的一步一步的照片 http://imgur.com/a/5TJZa

我会告诉你我的代码。

Route.js

import React, { Component, PropTypes } from 'react';
import {
    StyleSheet,
    View,
    Text,
    Image,
    Dimensions,
} from 'react-native';
import MapView from 'react-native-maps';
var {height, width} = Dimensions.get('window');

export default class Route extends Component {
    constructor(props){
    super(props);
    this.state = {
        region: {
            latitude: 37.78825,
            longitude: -122.4324,
            latitudeDelta: 0.0922,
            longitudeDelta: 0.0421,
        }
    };
    this.onRegionChange = this.onRegionChange.bind(this);
}

onRegionChange(region) {
    this.setState({ region });
}

    render() {
        return (
            <View style={styles.container}>
        <MapView style={styles.map}
          mapType="standard"
          showsUserLocation={true}
          followsUserLocation={true}
          showsCompass={false}
          showsPointOfInterest={false}
          region={this.state.region}
          onRegionChange={this.onRegionChange}
        />
        <View style={styles.container}>
          <Text>
          Latitude: {this.state.region.latitude}{'\n'}
          Longitude: {this.state.region.longitude}{'\n'}
          LatitudeDelta: {this.state.region.latitudeDelta}{'\n'}
          LongitudeDelta: {this.state.region.longitudeDelta}
          </Text>
        </View>
      </View>
        );
    }
}



Route.navigationOptions = { //this define from App.js option in SecondScreen
  title: 'Route', //name top of StackNavigator
};




const styles = StyleSheet.create({
    container: {
        flex: 1,
        alignItems: 'center',
        justifyContent: 'center',
    },
    image: {
        width: 200,
        height: 200,
    },
    text: {
        color: 'white',
        fontWeight: 'bold',
        backgroundColor: 'transparent',
        marginTop: 20,
    },
    map: {
    width: width,
    height: height*2/3
  }
});

1 个答案:

答案 0 :(得分:0)

在iOS模拟器中,它会读取虚假位置。使用 Debug&gt;设置自定义位置位置&gt;模拟器菜单中的自定义位置...

如果您在真实设备上运行它,您将获得真实位置。如果您继续使用模拟器,则可以使用自定义位置菜单放置当前位置。您可以通过多种方式获取您的位置:http://mylocation.org/