Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk memanggil API Peta Baidu melalui pengaturcaraan Python untuk memaparkan maklumat trafik masa nyata pada peta?

Bagaimana untuk memanggil API Peta Baidu melalui pengaturcaraan Python untuk memaparkan maklumat trafik masa nyata pada peta?

PHPz
PHPzasal
2023-08-02 11:49:071535semak imbas

Bagaimana untuk memanggil API Peta Baidu melalui pengaturcaraan Python untuk memaparkan maklumat trafik masa nyata pada peta?

Abstrak: Artikel ini akan memperkenalkan cara menggunakan bahasa pengaturcaraan Python untuk memanggil API Peta Baidu untuk memaparkan maklumat trafik masa nyata pada peta. Dengan memperkenalkan antara muka terbuka Peta Baidu dan menggabungkannya dengan fungsi pengaturcaraan Python yang berkuasa, kami boleh mendapatkan dan memaparkan keadaan kesesakan lalu lintas terkini dengan mudah untuk membantu pengguna merancang laluan perjalanan.

1. Persediaan
Sebelum bermula, kita perlu membuat beberapa persediaan:
1 Daftar untuk akaun Baidu Open Platform dan dapatkan kunci: Anda memerlukan akaun Baidu Open Platform dan dapatkan ak (kunci akses) aplikasi. .
2 Pasang perpustakaan Python yang diperlukan: Kami perlu memasang permintaan dan perpustakaan matplotlib. Anda boleh menggunakan arahan pip untuk memasang:
permintaan pemasangan pip
pip install matplotlib

2. Panggil API Peta Baidu untuk mendapatkan maklumat trafik masa nyata
Dalam Python, kami boleh menggunakan perpustakaan permintaan untuk menghantar permintaan HTTP, dengan itu memanggil Baidu API Peta untuk mendapatkan maklumat trafik masa nyata . Seterusnya, mari tulis kod untuk melaksanakan fungsi ini.

import requests

def get_traffic_info(location):
    base_url = "http://api.map.baidu.com/traffic/v1/bound"
    ak = "<your access key>"
    coords = "{},{},{},{}".format(location["left"], location["bottom"], location["right"], location["top"])
    url = "{}?ak={}&bounds={}".format(base_url, ak, coords)
    response = requests.get(url)
    data = response.json()
    return data

# 示例:获取北京市实时交通信息
location = {
    "left": 116.224261,
    "bottom": 39.822673,
    "right": 116.571177,
    "top": 40.095278
}
traffic_info = get_traffic_info(location)
print(traffic_info)

Dalam kod di atas, kami mentakrifkan fungsi yang dipanggil get_traffic_info, yang menerima parameter lokasi geografi dan mengembalikan maklumat trafik masa nyata di lokasi tersebut. Kami menetapkan base_url dalam fungsi kepada alamat API Peta Baidu dan menyambung parameter lokasi geografi ke dalam URL melalui coords. Hantar permintaan GET menggunakan kaedah requests.get, dapatkan data JSON yang dikembalikan dan huraikannya ke dalam objek Python.

3 Paparkan maklumat trafik masa nyata pada peta
Melalui kod di atas, kami telah berjaya memperoleh maklumat trafik masa nyata Seterusnya, kami boleh menggunakan perpustakaan matplotlib untuk memaparkan maklumat ini pada peta.

Pertama, kita perlu memasang perpustakaan Basemap, yang boleh dipasang melalui arahan berikut:

pip install basemap

Seterusnya, kami menulis kod berikut untuk melaksanakan paparan visual peta:

from mpl_toolkits.basemap import Basemap
import matplotlib.pyplot as plt

def show_traffic_info(location, traffic_info):
    m = Basemap(projection='merc',
                llcrnrlat=location["bottom"],
                urcrnrlat=location["top"],
                llcrnrlon=location["left"],
                urcrnrlon=location["right"],
                lat_ts=20,
                resolution='i')
    m.drawcoastlines()
    m.fillcontinents(color='coral', lake_color='aqua')

    for road in traffic_info["road_traffic"]:
        start_x, start_y = m(road["start_point"]["x"], road["start_point"]["y"])
        end_x, end_y = m(road["end_point"]["x"], road["end_point"]["y"])
        m.plot([start_x, end_x], [start_y, end_y], linewidth=road["direction"]["congestion"])
    plt.show()

# 示例:展示北京市实时交通信息在地图上的显示
show_traffic_info(location, traffic_info)

Di atas kod, kami mentakrifkan fail bernama Fungsi show_traffic_info menerima lokasi geografi dan maklumat trafik sebagai parameter, menggunakan perpustakaan Basemap untuk mencipta objek peta dan menetapkan skop peta melalui parameter lokasi geografi masuk.
Kemudian, kami melukis segmen garisan yang sepadan pada peta berdasarkan titik permulaan dan penamat setiap jalan berdasarkan maklumat trafik dan menggunakan kesesakan jalan untuk menetapkan lebar segmen garisan.

4 Ringkasan
Dengan menggunakan bahasa pengaturcaraan Python dan menggabungkan fungsi Baidu Map API dan perpustakaan matplotlib, kami boleh mendapatkan dan memaparkan maklumat trafik masa nyata dengan mudah pada peta. Memaparkan maklumat ini pada peta bukan sahaja dapat memahami keadaan trafik di tapak secara intuitif, tetapi juga membantu pengguna merancang laluan perjalanan, mengelakkan bahagian yang sesak dan meningkatkan kecekapan perjalanan. Saya harap artikel ini dapat membantu pembaca lebih memahami dan menggunakan bahasa pengaturcaraan Python.

Atas ialah kandungan terperinci Bagaimana untuk memanggil API Peta Baidu melalui pengaturcaraan Python untuk memaparkan maklumat trafik masa nyata pada peta?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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