【问题标题】:Get latitude and longitude from zip code javascript从邮政编码javascript获取纬度和经度
【发布时间】:2019-03-17 03:52:59
【问题描述】:

我正在尝试编写一个函数,该函数将返回邮政编码的纬度和经度。我正在尝试使用 google maps api 来执行此操作。

我看到地理编码器似乎对此很有用,但我很难知道如何使用它。我想要做的是使用一个函数来返回传入的邮政编码,以作为具有纬度和经度坐标的数组返回。

我创建了一个帐户来获取 API 密钥。例如,假设我的功能是:

函数getCoordinates(邮政编码);

我怎样才能写出来,这样传入的邮政编码会返回纬度和经度?感谢您的任何回复!

【问题讨论】:

  • 地理编码器是异步的,你不能从函数返回它的结果(至少没有回调或承诺)
  • 我现在遇到了这个问题。我得到了一个错误,要么是在没有 catch 块的情况下抛出一个同步函数,要么是拒绝了一个没有用 .catch() 处理的 promies。我将开始研究这到底意味着什么。感谢您的提醒!如果有人想分解它,那意味着什么也很棒!

标签: javascript google-maps geocoder


【解决方案1】:

你说得对,geocoding api 就是你所需要的。基本上你必须执行一个获取请求来

https://maps.googleapis.com/maps/api/geocode/json?address=YOUR_ZIP&key=YOUR_API_KEY

您可能还想指定一个国家/地区进行搜索。为此,只需添加带有国家代码的region 参数(例如region=us

【讨论】:

    【解决方案2】:

    如果您询问如何从 API 调用中获取数据,鉴于您已经有了定义地址参数和实际调用函数的部分,希望这会有所帮助:

    function getCoordinates(address){
      fetch("https://maps.googleapis.com/maps/api/geocode/json?address="+address+'&key='+API_KEY)
        .then(response => response.json())
        .then(data => {
          const latitude = data.results.geometry.location.lat;
          const longitude = data.results.geometry.location.lng;
          console.log({latitude, longitude})
        })
    }
    

    我不完全确定您是否可以通过邮政编码或仅通过地址和/或地区获取经度和纬度参数,但值得一试。这是Google Maps API 文档的链接。希望这会有所帮助。

    【讨论】:

    • 是的,我对 javascript 很陌生,所以不确定 fetch 命令是如何工作的。基本上maps.googleapis.com/maps/api/geocode/… 给出的是一个具有“位置”属性的 URL。我试图弄清楚如何创建一个函数来从位置对象返回 lat 和 lng 分量。
    猜你喜欢
    • 1970-01-01
    • 2012-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多