react / redux:基于long / lat的反向地理定位

时间:2018-06-02 05:51:09

标签: reactjs google-maps google-maps-api-3 redux

我想创建一个redux操作,该操作接受用户的地理位置(通过navigator.geolocation)并反向地理定位他们的城市。

这是我现在的代码:

export function getGeolocation() {
    return dispatch => {
        const geolocation = navigator.geolocation;
        geolocation.getCurrentPosition((position) => {
            dispatch({
                type: GET_GEOLOCATION,
                payload: position
            });
        });
};}

我想更新payload以传递州和城市名称。

我想过几种方法可以做到这一点,所有这些似乎并不理想:

  1. 我尝试使用名为reverse-geocode的库执行此操作,但在将其合并到我的操作中时出现了一个奇怪的错误:通过向我的文件添加let reverse = require('reverse-geocode');,我在记录时遇到错误说"依赖的请求是表达式,"谷歌搜索了一下后,我不确定为什么会在这种情况下发生错误。

  2. 我考虑过使用引用here的Google Maps API,但我不确定将API密钥添加到我的操作中的最佳方式是什么?通常,该信息存储在服务器上,我不想设置单独的本地API端点来管理它。

  3. 我从反向地理编码中提取了主要的json文件,但是我在加载它时遇到了问题。当我添加类似

    的简单代码时
    const USLocations = require('{relativePathToAssetsDirectory}/USLocations.json')
    console.log(USlocations)
    

    它给了我一个空白对象,可能是因为USLocations.json文件太大了(?)。此外,鉴于该文件为4 MB,我只是这样做,以便我可以在应用程序启动时对用户进行地理定位,我想知道这是否是一种有效的方法来执行此操作。

  4. 对于我来说,在redux中,最好的方法是使用长/一对并将其转换为城市和状态以便在加载时传入我的应用程序?

0 个答案:

没有答案