Maison > Java > javaDidacticiel > le corps du texte

Dans l'API Baidu Map, comment utiliser Java pour obtenir des informations routières à un emplacement spécifié ?

WBOY
Libérer: 2023-07-31 19:09:39
original
1002 Les gens l'ont consulté

Dans l'API Baidu Map, comment utiliser Java pour obtenir des informations routières à un emplacement spécifié ?

L'API Baidu Map fournit une fonction puissante, qui consiste à obtenir des informations routières par longitude et latitude. En Java, nous pouvons utiliser HttpURLConnection et BufferedReader pour envoyer des requêtes HTTP GET et analyser les données JSON renvoyées afin d'obtenir des informations routières à un emplacement spécifié.

Tout d'abord, nous devons introduire les fichiers de bibliothèque pertinents :

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
Copier après la connexion

Ensuite, nous définissons une méthode pour obtenir les informations routières à l'emplacement spécifié :

public static String getRoadInfo(double lat, double lng) {
    String roadInfo = "";
    
    try {
        // 创建URL对象并构建请求URL
        URL url = new URL("http://api.map.baidu.com/road/v1/nearest_roads?ak=your_ak&coord_type=wgs84ll&point=" + lat + "," + lng);

        // 创建HttpURLConnection对象并打开连接
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setRequestMethod("GET");

        // 获取返回数据
        BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
        String line;
        StringBuilder response = new StringBuilder();
        while ((line = reader.readLine()) != null) {
            response.append(line);
        }
        reader.close();

        // 解析JSON数据
        JSONObject jsonObject = new JSONObject(response.toString());
        JSONArray roadArray = jsonObject.getJSONArray("roads");
        if (roadArray.length() > 0) {
            roadInfo = roadArray.getJSONObject(0).getString("name");
        }
    } catch (Exception e) {
        e.printStackTrace();
    }

    return roadInfo;
}
Copier après la connexion

Dans le code ci-dessus, nous utilisons les "nearest_roads" dans la carte Baidu Interface API de service Web, qui peut renvoyer les informations d'itinéraire les plus proches de la longitude et de la latitude spécifiées. Veuillez noter que « ak=your_ak » dans l'URL doit être remplacé par votre propre clé API Baidu Maps.

Ensuite, nous pouvons appeler la méthode ci-dessus dans la méthode principale pour obtenir les informations routières à l'emplacement spécifié :

public static void main(String[] args) {
    double lat = 39.983424;// 纬度
    double lng = 116.322987;// 经度
    
    String roadInfo = getRoadInfo(lat, lng);
    System.out.println("道路信息:" + roadInfo);
}
Copier après la connexion

La latitude et la longitude dans le code ci-dessus sont l'emplacement du centre de Pékin. Vous pouvez modifier la latitude et la longitude pour obtenir des informations routières vers d'autres emplacements.

Avec le code ci-dessus, nous pouvons utiliser l'API Baidu Map en Java pour obtenir des informations routières à un emplacement spécifié. Ceci est très utile pour certains scénarios d'application qui nécessitent une planification de trajet, une analyse de positionnement, etc. sur la base d'informations routières.

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:php.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