Maison  >  Article  >  Java  >  Dans l'API Baidu Map, comment utiliser Java pour obtenir des informations sur les lignes de métro à un emplacement spécifié ?

Dans l'API Baidu Map, comment utiliser Java pour obtenir des informations sur les lignes de métro à un emplacement spécifié ?

WBOY
WBOYoriginal
2023-07-30 16:31:511662parcourir

Dans l'API Baidu Map, comment utiliser Java pour obtenir des informations sur les lignes de métro à un emplacement spécifié ?

Le métro joue un rôle important dans le transport urbain moderne. Pour permettre aux utilisateurs de trouver plus facilement des informations sur les lignes de métro, Baidu Maps fournit les interfaces API correspondantes. Cet article explique comment utiliser le code Java pour obtenir des informations sur les lignes de métro à un emplacement spécifié via l'API Baidu Map.

Tout d'abord, nous devons obtenir la clé de développeur Baidu Map. Après vous être enregistré et connecté à la plateforme ouverte Baidu Map, créez une nouvelle application sur la page « Gestion des applications », puis obtenez la clé de développeur dans « Gestion des clés ». Après avoir obtenu la clé, vous pouvez l'utiliser pour effectuer des appels API ultérieurs.

Ensuite, nous devons importer les bibliothèques Java pertinentes. Nous pouvons utiliser l'outil de gestion des packages de développement Java Maven pour gérer les dépendances. Ajoutez les dépendances suivantes au fichier pom.xml du projet :

<dependencies>
  <dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.47</version>
  </dependency>
  <dependency>
    <groupId>org.apache.httpcomponents</groupId>
    <artifactId>httpclient</artifactId>
    <version>4.5.9</version>
  </dependency>
</dependencies>

Dans le code, nous devons d'abord construire une requête HTTP et définir l'URL de la requête, les paramètres de la requête et d'autres informations. Envoyez ensuite une requête HTTP et obtenez le résultat de retour. Enfin, les résultats renvoyés sont analysés et les informations requises sur les lignes de métro sont extraites.

Ce qui suit est un exemple de code qui montre comment utiliser Java pour obtenir des informations sur les lignes de métro à un emplacement spécifié :

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.HashMap;
import java.util.Map;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;

public class BaiduMapAPI {
    
    public static void main(String[] args) {
        String url = "http://api.map.baidu.com/place/v2/search?query=地铁站&location=40.057406,116.296440&radius=2000&output=json&ak=Your_AK";
        
        String result = sendHttpRequest(url);
        Map<String, String> subwayLines = parseSubwayLines(result);
        
        System.out.println("地铁线路信息:");
        for (String lineName : subwayLines.keySet()) {
            System.out.println(lineName + ":" + subwayLines.get(lineName));
        }
    }
    
    private static String sendHttpRequest(String urlString) {
        try {
            URL url = new URL(urlString);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            connection.setConnectTimeout(5000);
            connection.setReadTimeout(5000);
            
            int responseCode = connection.getResponseCode();
            if (responseCode == HttpURLConnection.HTTP_OK) {
                BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                String line;
                StringBuilder response = new StringBuilder();
                while ((line = in.readLine()) != null) {
                    response.append(line);
                }
                in.close();
                
                return response.toString();
            } else {
                System.out.println("HTTP请求失败,错误码:" + responseCode);
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        
        return null;
    }
    
    private static Map<String, String> parseSubwayLines(String json) {
        Map<String, String> subwayLines = new HashMap<>();
        JSONObject jsonObject = JSON.parseObject(json);
        
        JSONArray results = jsonObject.getJSONArray("results");
        for (int i = 0; i < results.size(); i++) {
            JSONObject result = results.getJSONObject(i);
            
            String name = result.getString("name");
            String detail = result.getString("detail_info");
            
            subwayLines.put(name, detail);
        }
        
        return subwayLines;
    }
}

Dans le code ci-dessus, le paramètre Your_AK替换为你自己的百度地图API开发者密钥。location参数用于指定某一位置的经纬度坐标,这里使用了北京市的坐标。radius参数用于指定搜索区域的半径,这里设定为2000米。query doit être utilisé pour spécifier le mot-clé de recherche et "station de métro" est utilisé ici.

Exécutez le code ci-dessus pour afficher les informations sur la ligne de métro de l'emplacement spécifié sur la console.

Grâce à l'exemple de code ci-dessus, nous pouvons voir comment utiliser le code Java pour appeler l'API Baidu Map afin d'obtenir des informations sur les lignes de métro à un emplacement spécifié. Vous pouvez également obtenir d'autres types de données cartographiques via l'API Baidu Map en fonction des besoins réels. J'espère que cet article pourra vous aider à comprendre et à utiliser l'API Baidu Map.

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!

Déclaration:
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