如何从谷歌 API 获取经度和纬度

Posted

技术标签:

【中文标题】如何从谷歌 API 获取经度和纬度【英文标题】:How to Fetch longitude and Latitude from google API 【发布时间】:2021-05-05 08:34:11 【问题描述】:

我正在尝试从 google Maps Api 获取经度和纬度,所以当我把它放在浏览器上时,连同这样的 API 密钥

https://maps.googleapis.com/maps/api/geocode/json?address=%2727,%20Bello%20Street%20Orile%20Iganmu,%20Lagos%20Nigeria%27&sensor=false&key=AIzaSyBsy6x3mTXbPQ52qk6XMI9u1NgMfn9-YNE

我明白了

这很好,现在我想在 React Native 中获得相同的效果。我创建了这个看起来像这样的方法

GetLongitudeFromAddress = (txtaddress) =>

    let address = txtaddress;
    let lng = this.state.Alongitude;
    let lat = this.state.Alatitude;

    var logLatApi = 'https://maps.googleapis.com/maps/api/geocode/json?address='+address+'&sensor=false&key=AIzaSyBsy6x3mTXbPQ52qk6XMI9u1NgMfn9-YNE';

    var header = 
        'Accept': 'application/json',
        'Content-Type': 'application/json'
    ;

    fetch(
        logLatApi,
            method : 'GET',
            headers : header
        
    ).then((response) => response.json())
    .then((responseJson)=>
        if(responseJson =='OK')
        
            this.setState(longitude:responseJson[0].Alongitude);
            this.setState(latitude:responseJson[0].Alatitude);
        
    )

它没有得到正确的经度,有时,它返回 null,我尝试将它放在 onTextChange() 请我如何让它印上正确的经度和纬度。 ?

【问题讨论】:

【参考方案1】:

将您的状态设置行更正

this.setState( longitude : responseJson.results[0].geometry.location.lng );
this.setState( latitude : responseJson.results[0].geometry.location.lat );

您的fetch 应该是这样的

fetch( logLatApi, 
            method : 'GET',
            headers : header
        
    ).then((response) => response.json())
    .then((responseJson)=>
        if(responseJson.status === 'OK')
         
           this.setState( longitude : responseJson.results[0].geometry.location.lng );
           this.setState( latitude : responseJson.results[0].geometry.location.lat );
        
    )

【讨论】:

以上是关于如何从谷歌 API 获取经度和纬度的主要内容,如果未能解决你的问题,请参考以下文章

从谷歌地图获取经度和纬度的不断更新[重复]

如何从谷歌地方详细信息结果中获取纬度和经度值

从谷歌标记获取纬度/经度

如何使用 ionic 中的 java 脚本从谷歌地图中的地址获取经度和纬度

从谷歌地图获取纬度和经度

html 从谷歌地图获取经度和纬度