让用户所在的城市和国家/地区与本地人互动

时间:2018-10-01 00:30:22

标签: reactjs react-native geolocation

我是本机(开发应用程序)的新手,我想向用户显示一条消息,当他第一次使用该应用程序时,告诉用户该应用程序认为自己在城市COUNTRY

我找不到可以使用的有效示例。我发现的大多数内容都是提供用户经度和纬度的API,以及一些解码(经纬度)到城市和国家/地区的其他API。两者都没有有效的工作实例来很好地记录下来

我如何实现这个目标?是否可以使用方法或插件?

这是我尝试过的一段代码(我尝试了许多示例):

import { PermissionsAndroid, Platform } from 'react-native'

    const requestPermission = () => {
    if(Platform.OS === 'ios') return Promise.resolve(true)
    return PermissionsAndroid.request(
      PermissionsAndroid.PERMISSIONS.ACCESS_FINE_LOCATION,
      {
        'title': 'Allow to get coordinates',
        'message': 'This app requires GPS coordinates in order to proceed '
      }
    ).then(granted => {
        if(granted === PermissionsAndroid.RESULTS.GRANTED) {
          return Promise.resolve("You can use the location")
        } else {
          return Promise.reject("Location permission denied")
        }
    })
    }

    const getCoordinates = () => {
    return requestPermission().then(ok => {
        return new Promise((resolve, reject) => {
            const options = Platform.OS === 'android' ? 
{enableHighAccuracy:true,timeout:5000}
                                        : 
{enableHighAccuracy:true,timeout:5000,maximumAge:2000};
            global.navigator.geolocation.getCurrentPosition(resolve, reject, options)
      })
    })
    }

    export default getCoordinates

我得到的错误是:

  

不变违规:对象作为React子对象无效(找到:带有键{_40,_65,_55,_72}的对象)如果要渲染子代的集合,请改用数组。

1 个答案:

答案 0 :(得分:1)

  1. 获取当前位置(需要授予位置权限)(删除myLocationCallback)

enter image description here

  1. 将位置(纬度,经度)传递给Google Map API(您需要使用Google API密钥enter image description here