Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android navigator.geolocation.getCurrentPosition未在本机中工作_Android_Reactjs_React Native_React Native Maps - Fatal编程技术网

Android navigator.geolocation.getCurrentPosition未在本机中工作

Android navigator.geolocation.getCurrentPosition未在本机中工作,android,reactjs,react-native,react-native-maps,Android,Reactjs,React Native,React Native Maps,我的getCurrentPosition功能不工作 获取当前位置后,如何获取当前位置的名称 如何修复它?位置 我认为您需要阅读有关react native中location如何工作的文档。跟踪用户位置所需的所有方法都存在 getCurrentPosition 使用最新的位置信息调用一次成功回调 这意味着每次调用此函数时,您只能得到一次更新。因此,如果您希望它获得连续的更新流,那么您就没有阅读文档 watchPosition 每当位置更改时调用成功回调 这意味着,每当您的设备移动位置时,您都会收

我的
getCurrentPosition
功能不工作

获取当前位置后,如何获取当前位置的名称

如何修复它?

位置 我认为您需要阅读有关react native中location如何工作的文档。跟踪用户位置所需的所有方法都存在

getCurrentPosition

使用最新的位置信息调用一次成功回调

这意味着每次调用此函数时,您只能得到一次更新。因此,如果您希望它获得连续的更新流,那么您就没有阅读文档

watchPosition

每当位置更改时调用成功回调

这意味着,每当您的设备移动位置时,您都会收到通知,您可以使用新位置更新您的状态。但是,它仅在移动位置时更新。如果不移动位置,则无法获取更新

本教程将向您展示如何使用不同的定位方法。

反向地理代码查找 其次,基于GPS坐标获取当前用户位置的名称称为反向地理代码查找。目前有一些软件包可以做到这一点

其中有些是alpha/beta版本,有些已经很久没有更新了。因此,您的里程可能会有所不同,但您不能将这些套餐用于Expo

使用fetch和googleapi进行反向地理编码 你应该看看谷歌的文档。

提醒:要使用地理编码API,您必须获得API密钥并 必须启用计费。您可以在获得API密钥时启用计费 (请参阅快速指南)或作为单独的流程(请参阅使用和 账单)

这个简单的函数应该允许您执行反向地理代码查找,您只需要传递纬度、经度和Google API密钥

   constructor(props) {
        super(props);
        this.state = {
          initialPosition: {
                latitude: 0,
                longitude: 0,
                latitudeDelta: 0,
                longitudeDelta: 0,
              }
        }; 
}

      componentDidMount () {
         navigator.geolocation.getCurrentPosition(
            (position) => {
                var lat = parseFloat(position.coords.latitude);
                var long = parseFloat(position.coords.longitude);


                var initialRegion = {
                    latitude: lat,
                    longitude: long,
                    latitudeDelta: LATITUDE_DELTA,
                    longitudeDelta: LONGITUDE_DELTA,
                }

                this.setState({ initialPosition: initialRegion});
            },
            (error) => this.setState({ error: error.message }),
            { enableHighAccuracy: true, timeout: 20000, maximumAge: 1000 },
          );

这就是你如何从谷歌地图api中获取地址和你想要的一切

async getAddress (latitude, longitude, APIKEY) {
  let url = `https://maps.googleapis.com/maps/api/geocode/json?latlng=${latitude},${longitude}&key=${APIKEY}`;
  try {
    let response = await fetch(url);
    let responseJson = await response.json();
    // do what you want with the responseJson here.
    return responseJson
  } catch (error) {
    console.warn(error); 
    // make sure you handle error and return something if an error occurs
  }
}

定义:“不工作”会发生什么?你期待什么?你不是在这里问这个问题吗@Andrew现在我意识到我的getCurrentPosition也不起作用了。我不知道为什么。如何从google API键获取它?请参阅我的更新,但请注意,使用地理编码API可能会产生成本。
handleAddress = () => {
        const API_KEY = 'xxxxxxxxxxxxxxxxxxxxxxxxxxx';
        const {latitude, longitude} = this.props;
        const requestOption = {
            method: 'GET'
        };

        fetch(`https://maps.googleapis.com/maps/api/geocode/json?address=${latitude},${longitude}&key=${API_KEY}`, requestOption)
            .then(res => res.json())
            .then(response => {
                this.setState({
                    address: response.results[0].formatted_address});
            })
            .catch(error => {
                console.warn(error);
            });
    };