Maison > interface Web > js tutoriel > le corps du texte

Comment utiliser le framework koa dans node pour appeler l'interface cartographique Gaode

青灯夜游
Libérer: 2022-01-24 19:34:17
avant
2965 Les gens l'ont consulté

Comment utiliser le framework koa dans nodejs pour appeler l'interface cartographique Amap ? L'article suivant vous présentera comment ajuster l'interface Amap à l'aide de node+koa. J'espère que cela vous sera utile !

Comment utiliser le framework koa dans node pour appeler l'interface cartographique Gaode

Amap Open Platform

Quelle est la chose la plus importante dont nous avons besoin pour ajuster l'interface Amap❓ Nous avons besoin de la clé de la carte Amap. Suivez les étapes ci-dessous pour accéder à la plateforme ouverte Amap.

Comment utiliser le framework koa dans node pour appeler linterface cartographique Gaode

Créer une application

Comment utiliser le framework koa dans node pour appeler linterface cartographique Gaode

Ajouter une clé

Ici, veuillez noter que différentes plateformes de services correspondent à différents services disponibles. Comme indiqué ci-dessous, j'utilise le service Web

Comment utiliser le framework koa dans node pour appeler linterface cartographique Gaode

Comment utiliser le framework koa dans node pour appeler linterface cartographique Gaode

pour générer la clé

Comment utiliser le framework koa dans node pour appeler linterface cartographique Gaode

interface tierce de demande koa

koa2-request

at node Demander une interface tierce dans revient en fait à lancer une demande de requête. Le même principe s’applique aux robots d’exploration. Nous utilisons koa2-request comme bibliothèque permettant au nœud de lancer des requêtes. Parce que nous utilisons le framework koa.

  • Adresse : https://www.npmjs.com/package/koa2-request En fait, vous n'avez pas besoin de le lire, c'est toute l'introduction.

  • Installation :

npm install koa2-request
Copier après la connexion
  • Utilisation de base

L'attente asynchrone est prise en charge ici

var koa2Req = require('koa2-request');
 
app.use(async(ctx, next) => {
    // request选项
    var res = await koa2Req('http://www.baidu.com');
    ctx.body = res.body;
});
Copier après la connexion

Démarrer

Nous avons découvert qu'il avait besoin de la ville et de la clé. un paramètre

mais il n'est pas pratique pour nous de saisir manuellement le code correspondant à la ville. Même si je m’en souvenais, ce serait une très mauvaise expérience utilisateur. Alors en fait, Amap dispose également d’une interface de positionnement IP. Alors sautons ci-dessous et jetons un coup d’œil. Comment utiliser le framework koa dans node pour appeler linterface cartographique Gaode

Positionnement IP

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

Vous avez besoin de deux paramètres ici, ip et key

En parlant d'IP, alors ici vous besoin d'un plug-inComment utiliser le framework koa dans node pour appeler linterface cartographique Gaode

Adresse https://www.npmjs.com/package/public-ip

    Utilisation de base
  • 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'
    })();
    Copier après la connexion
  • Ce qui suit est mon implémentation spécifique, utilisant l'adresse IP et la clé comme paramètres
  • 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;
        }
    }
    Copier après la connexion
Le format de la valeur de retour

{

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

  }
Copier après la connexion

Nous voulons obtenir le code adcode de la ville, res.body est la valeur que nous récupérons de l'interface. Utilisez JSON.parse pour le convertir en objet 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')
    }
Copier après la connexion

Ensuite, vous pouvez appeler l'interface météo. L'interface météo nécessite le code de la ville et la clé que nous venons d'obtenir comme paramètres.

    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;
    }
Copier après la connexion
Pour plus de connaissances sur les nœuds, veuillez visiter :

tutoriel Nodejs

 !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:juejin.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!