首页 > 解决方案 > 坐标(纬度,语言)的任何地址?

问题描述

我最近两天在互联网上搜索地址进行地理编码。我还没有找到更好的解决方案。我正在用 express graphql 构建一个 api。对于地理编码首先我使用这个地理编码器包。当我将此包与文档一起使用时,我遇到了一个错误。

代码-

geocoder.geocode("Dhaka, Bangladesh", function (err, data) {
      console.log(err)
      console.log(data)
});

错误信息- 错误信息

然后我正在寻找。最后我在介质中找到了一种解决方案。当我使用它时,它也会抛出一条错误消息。在那段时间我使用node-gecoder。

代码-

let options = {
  provider: 'openstreetmap'
};
let geoCoder = nodeGeocoder(options);
geoCoder.geocode('Bangladesh')
       .then((res) => {
            console.log(res);
        })
       .catch(err => {
            console.log(err)
        })

错误信息- 在此处输入图像描述

现在我错了。对我来说最好的解决方案是什么?

请帮忙。非常感谢。

标签: javascriptnode.jsexpressgoogle-geocoder

解决方案


任何坐标或几何的地址都可以使用Opencage Api Client的包来完成。尽管您正在尝试使用 gecoder 和 node gecoder 但遇到了一些错误。首先我告诉你你的代码。在 gecoder 中,您必须添加 google map api。但是您没有任何文档来查找如何添加文档。这样您就可以使用开放笼api客户端。为了使用这个包。转到opencage.com并创建一个帐户。在仪表板下,您可以找到一个 api 密钥。它是完全免费的。 在此处输入图像描述

其次,您必须在项目中安装 dotenv。将以下代码添加到您的项目根文件中-

require('dotenv/config');

然后将以下代码添加到 .env 文件中-

OPENCAGE_API_KEY=[Copied Api Key]

然后将以下代码添加到您需要的项目中-

opencage
  .geocode({ q: 'Newyork, USA' })
  .then((data) => {
    console.log(data.results[0].geometry));
  })
  .catch((error) => {
    console.log('error', error.message);
  });

而已。非常感谢。


推荐阅读