首页前端开发JavaScript怎么在node中使用koa框架调用高德地图接口

怎么在node中使用koa框架调用高德地图接口

时间2024-01-31 05:38:03发布访客分类JavaScript浏览951
导读:收集整理的这篇文章主要介绍了怎么在node中使用koa框架调用高德地图接口,觉得挺不错的,现在分享给大家,也给大家做个参考。怎么在nodejs中使用koa框架调用高德地图接口?下面本篇文章给大家介绍一下node+koa调高德地图接口的方法,...
收集整理的这篇文章主要介绍了怎么在node中使用koa框架调用高德地图接口,觉得挺不错的,现在分享给大家,也给大家做个参考。怎么在nodejs中使用koa框架调用高德地图接口?下面本篇文章给大家介绍一下node+koa调高德地图接口的方法,希望对大家有所帮助!

高德开放平台

调高德接口我们最重要需要什么❓ 需要高德地图的key。按照如下的步骤进入高德开放平台。

创建应用

添加key

这里注意一下不同的服务平台,对应不同的可使用服务。如下图我是使用的是web服务

生成了key

koa请求第三方接口

koa2-request

在node中请求第三方接口,其实也就是发起一个request请求。爬虫的原理也是如此。node发起请求的库我们这里用到了koa2-request。因为我们用到了koa框架。

  • 地址: https://www.npmjs.COM/package/koa2-request 其实也不用看了,介绍就这么多。

  • 安装:

npm install koa2-request
  • 基本使用方法

这里支持async await

VAR koa2Req = require('koa2-request');
     app.use(async(ctx, next) =>
 {
        // request选项    var res = awaIT koa2Req('http://www.baidu.com');
        ctx.body = res.body;
}
    );
    

开干

天气接口

我们进来后惊奇的发现他需要city和key作为参数

但是我们手动去输入城市对应的编码不太现实。即使我记得住,它用户体验也会极差。然后其实高德还有一个IP定位接口。那我们先跳到下面看一下。

IP定位

https://LBS.amap.com/api/webservice/guide/api/ipconfig

这里需要两个参数ip和key

说到IP,那这里还需要一个插件

  • 地址 https://www.npmjs.com/package/public-ip
  • 基本使用方法
const publicIp = require('public-ip');
    (async () =>
 {
    	console.LOG(await publicIp.v4());
    	//=>
     '46.5.21.123'	console.log(await publicIp.v6());
    	//=>
 'fe80::200:f8ff:fe21:67CF'}
    )();
    

如下是我的具体实现,将ip和key作为参数

const koa2Req = require('koa2-request');
const publicIp = require('public-ip') // 获取外网ipconst gaode_key = '8a674879652195a8bc6ff51357199517'class clientController {
    async getWeather(ctx, next) {
        const ip_param = await publicIp.v4()        var res = await koa2Req(`https://restapi.amap.com/v3/ip?ip=${
ip_param}
    &
    output=json&
key=${
gaode_key}
    `);
            ctx.body = res;
    }
}
    

返回值的格式

{
           "status" :"1",       "info" :"OK",       "infocode" :"10000",       "PRovince" :"北京市",       "city" :"北京市",       "adcode" :"110000",       "rectangle" :"116.0119343,39.66127144;
116.7829835,40.2164962"  }
    

我们想要获得城市编码 adcode,res.body是我们从接口中取回的值。用JSON.parse将其转为JSON对象。

    async getWeather(ctx, next) {
        const ip_param = await publicIp.v4()        var res = await koa2Req(`https://restapi.amap.com/v3/ip?ip=${
ip_param}
    &
    output=json&
key=${
gaode_key}
    `);
        const city = JSON.parse(res.body).adcode        console.log(city,'city')    }
    

接下来就可以调用天气接口了,天气接口需要刚才我们获得的城市编码和key作为参数。

    async getWeather(ctx, next) {
        const ip_param = await publicIp.v4()        var res = await koa2Req(`https://restapi.amap.com/v3/ip?ip=${
ip_param}
    &
    output=json&
key=${
gaode_key}
    `);
        const city = JSON.parse(res.body).adcode        console.log(city,'city')        var res_weather = await koa2Req(`https://restapi.amap.com/v3/weather/weatherInfo?city=${
city}
    &
key=${
gaode_key}
`)        let weather = {
data: JSON.parse(res_weather.body)}
            ctx.body = weather;
    }
    

更多node相关知识,请访问:nodejs 教程!

以上就是怎么在node中使用koa框架调用高德地图接口的详细内容,更多请关注其它相关文章!

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!

node

若转载请注明出处: 怎么在node中使用koa框架调用高德地图接口
本文地址: https://pptw.com/jishu/593550.html
C++学习之new()和malloc()函数 javascript怎么改变input value值

游客 回复需填写必要信息