Home > Web Front-end > JS Tutorial > body text

How to use the koa framework in node to call the Gaode map interface

青灯夜游
Release: 2022-01-24 19:34:17
forward
2969 people have browsed it

How to use the koa framework in nodejs to call the Gaode map interface? The following article will introduce to you how to adjust the Gaode map interface in node koa. I hope it will be helpful to you!

How to use the koa framework in node to call the Gaode map interface

Amap Open Platform

What do we need most to adjust the Amap interface❓ We need the key of the Amap map. Follow the steps below to enter the Amap open platform.

How to use the koa framework in node to call the Gaode map interface

Create application

How to use the koa framework in node to call the Gaode map interface

## Add key

Note here that different service platforms correspond to different available services. As shown below, I am using the web service

How to use the koa framework in node to call the Gaode map interface

How to use the koa framework in node to call the Gaode map interface

## to generate the key

How to use the koa framework in node to call the Gaode map interface

koa requests third-party interface

koa2-requestRequesting a third-party interface in

node

is actually initiating a request request. The same principle applies to crawlers. We use koa2-request as the library for node to initiate requests. Because we use the koa framework.

    Address: https://www.npmjs.com/package/koa2-request Actually, you don’t need to read it, that’s all the introduction.
  • Installation:
  • npm install koa2-request
    Copy after login
Basic usage
  • Async await is supported here
var koa2Req = require('koa2-request');
 
app.use(async(ctx, next) => {
    // request选项
    var res = await koa2Req('http://www.baidu.com');
    ctx.body = res.body;
});
Copy after login

开干

Weather interface

After we came in, we were surprised to find that he needed city and key as parameters

How to use the koa framework in node to call the Gaode map interface#But it is not practical for us to manually enter the code corresponding to the city. Even if I remembered it, it would be a very poor user experience. Then in fact, Amap also has an IP positioning interface. So let’s jump below and take a look.

IP positioning

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

Two parameters are required here ip and key

How to use the koa framework in node to call the Gaode map interfaceSpeaking of IP, you need a plug-in

Address https://www.npmjs.com/package/ public-ip
  • Basic usage
  • 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'
    })();
    Copy after login
  • The following is my specific implementation, using ip and key as parameters
const koa2Req = require('koa2-request');
const publicIp = require('public-ip') // 获取外网ip
const 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;
    }
}
Copy after login

The format of the return value

{

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

  }
Copy after login

We want to get the city code adcode, res.body is the value we get back from the interface. Use JSON.parse to convert it to a JSON object.

    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')
    }
Copy after login

Next, you can call the weather interface. The weather interface requires the city code and key we just obtained as parameters.

    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;
    }
Copy after login

For more node-related knowledge, please visit:

nodejs tutorial

!

The above is the detailed content of How to use the koa framework in node to call the Gaode map interface. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:juejin.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!