首頁  >  文章  >  web前端  >  怎麼在node中使用koa框架呼叫高德地圖接口

怎麼在node中使用koa框架呼叫高德地圖接口

青灯夜游
青灯夜游轉載
2022-01-24 19:34:172997瀏覽

怎麼在nodejs中使用koa框架呼叫高德地圖介面?以下這篇文章跟大家介紹一下node koa調高德地圖介面的方法,希望對大家有幫助!

怎麼在node中使用koa框架呼叫高德地圖接口

高德開放平台

調高德介面我們最重要需要什麼❓ 需要高德地圖的key。依照如下的步驟進入高德開放平台。

怎麼在node中使用koa框架呼叫高德地圖接口

建立應用程式

怎麼在node中使用koa框架呼叫高德地圖接口

#新增key

這裡注意一下不同的服務平台,對應不同的可使用服務。如下圖我是使用的是web服務

怎麼在node中使用koa框架呼叫高德地圖接口

怎麼在node中使用koa框架呼叫高德地圖接口

#產生了key

怎麼在node中使用koa框架呼叫高德地圖接口

#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作為參數

怎麼在node中使用koa框架呼叫高德地圖接口

但我們手動去輸入城市對應的編碼不太現實。即使我記得住,它使用者體驗也會極差。然後其實高德還有一個IP定位介面。那我們先跳到下面看一下。

IP定位

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

這裡需要兩個參數ip和key

怎麼在node中使用koa框架呼叫高德地圖接口

說到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') // 获取外网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;
    }
}

傳回值的格式

{

       "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框架呼叫高德地圖接口的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:juejin.cn。如有侵權,請聯絡admin@php.cn刪除