Rumah > Java > javaTutorial > teks badan

Dalam API Peta Baidu, bagaimana untuk menggunakan Java untuk mendapatkan maklumat laluan kereta api bawah tanah di lokasi yang ditentukan?

WBOY
Lepaskan: 2023-07-30 16:31:51
asal
1725 orang telah melayarinya

Dalam API Peta Baidu, bagaimana menggunakan Java untuk mendapatkan maklumat laluan kereta api bawah tanah di lokasi yang ditentukan?

Kereta bawah tanah memainkan peranan penting dalam pengangkutan bandar moden Untuk memudahkan pengguna mencari maklumat laluan kereta api bawah tanah, Peta Baidu menyediakan antara muka API yang sepadan. Artikel ini akan memperkenalkan cara menggunakan kod Java untuk mendapatkan maklumat laluan kereta api bawah tanah di lokasi tertentu melalui API Peta Baidu.

Pertama, kita perlu mendapatkan kunci pembangun Peta Baidu. Selepas mendaftar dan log masuk ke Baidu Map Open Platform, buat aplikasi baharu pada halaman "Pengurusan Aplikasi", dan kemudian dapatkan kunci pembangun dalam "Pengurusan Kunci". Selepas mendapatkan kunci, anda boleh menggunakan kunci untuk membuat panggilan API berikutnya.

Seterusnya, kita perlu mengimport perpustakaan Java yang berkaitan. Kita boleh menggunakan alat pengurusan pakej pembangunan Java Maven untuk mengurus kebergantungan. Tambahkan kebergantungan berikut pada fail pom.xml projek:

<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>
Salin selepas log masuk

Dalam kod, pertama sekali kita perlu membina permintaan HTTP dan menetapkan URL permintaan, parameter permintaan dan maklumat lain. Kemudian hantar permintaan HTTP dan dapatkan hasil pulangan. Akhirnya, hasil yang dikembalikan dihuraikan dan maklumat laluan kereta bawah tanah yang diperlukan diekstrak.

Berikut ialah contoh kod yang menunjukkan cara menggunakan Java untuk mendapatkan maklumat laluan kereta api bawah tanah di lokasi yang ditentukan:

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;
    }
}
Salin selepas log masuk

Dalam kod di atas, parameter Your_AK替换为你自己的百度地图API开发者密钥。location参数用于指定某一位置的经纬度坐标,这里使用了北京市的坐标。radius参数用于指定搜索区域的半径,这里设定为2000米。query perlu digunakan untuk menentukan kata kunci carian dan "stesen kereta api bawah tanah" digunakan di sini.

Jalankan kod di atas untuk mengeluarkan maklumat laluan kereta api bawah tanah lokasi yang ditentukan pada konsol.

Melalui contoh kod di atas, kita boleh melihat cara menggunakan kod Java untuk memanggil API Peta Baidu untuk mendapatkan maklumat laluan kereta api bawah tanah di lokasi yang ditentukan. Anda juga boleh mendapatkan jenis data peta lain melalui API Peta Baidu mengikut keperluan sebenar. Saya harap artikel ini dapat memberikan sedikit bantuan untuk anda memahami dan menggunakan API Peta Baidu.

Atas ialah kandungan terperinci Dalam API Peta Baidu, bagaimana untuk menggunakan Java untuk mendapatkan maklumat laluan kereta api bawah tanah di lokasi yang ditentukan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan