要获取百度地图中深圳市所有地铁站点的经纬度数据,你可以使用百度地图的API。通常,这需要你在百度地图开放平台上注册一个账号,并获取一个API Key。然后,你可以使用API来查询地铁站点信息。
以下是一个使用Python和requests
库来获取百度地图中深圳市地铁站点经纬度数据的示例代码:
python复制代码
import requests | |
import json | |
def get_baidu_map_metro_stations(api_key, city, output='json'): | |
""" | |
从百度地图API获取指定城市的地铁站点信息。 | |
:param api_key: 百度地图API的Key | |
:param city: 城市名称 | |
:param output: 返回数据的格式,默认为'json' | |
:return: 地铁站点信息的字典或None(如果请求失败) | |
""" | |
base_url = "http://api.map.baidu.com/place/v2/search" | |
params = { | |
"query": "地铁", | |
"region": city, | |
"output": output, | |
"ak": api_key, | |
"page_size": 20, # 一次请求的站点数量,可以根据需要调整 | |
"page_num": 1 # 页码,可以通过循环来请求多页数据 | |
} | |
try: | |
response = requests.get(base_url, params=params) | |
response.raise_for_status() # 如果请求失败,这里会抛出异常 | |
data = response.json() | |
# 检查返回的状态码是否为0,表示请求成功 | |
if data.get('status') == 0: | |
return data.get('results') | |
else: | |
print(f"请求失败,状态码:{data.get('status')}, 错误信息:{data.get('message')}") | |
return None | |
except requests.RequestException as e: | |
print(f"请求失败: {e}") | |
return None | |
# 使用你的百度地图API Key替换下面的'YOUR_API_KEY' | |
api_key = 'YOUR_API_KEY' | |
city = '深圳' | |
# 初始化一个空列表来存储所有地铁站点信息 | |
metro_stations = [] | |
# 由于百度地图API可能有分页限制,这里可能需要循环请求多页数据 | |
page_num = 1 | |
while True: | |
params['page_num'] = page_num | |
stations = get_baidu_map_metro_stations(api_key, city, output='json') | |
if not stations: | |
break # 如果没有更多数据,则退出循环 | |
metro_stations.extend(stations) | |
page_num += 1 # 请求下一页数据 | |
# 输出所有地铁站点的经纬度信息 | |
for station in metro_stations: | |
location = station.get('location') | |
if location: | |
lng, lat = location.split(',') | |
print(f"站点名称:{station.get('name')}, 经度:{lng}, 纬度:{lat}") |
注意:
- 你需要替换
YOUR_API_KEY
为你的百度地图API Key。 - 由于百度地图API可能存在分页限制,你可能需要循环请求多页数据来获取所有地铁站点的信息。
- 返回的数据结构可能会随着百度地图API的更新而发生变化,所以你需要根据最新的API文档来调整代码。
- 请确保你遵守百度地图API的使用条款和限制,不要进行频繁的请求或超出API的调用限制。
在编写和运行上述代码之前,请确保你已经安装了requests
库。如果没有安装,可以通过pip来安装:
bash复制代码
pip install requests |
最后,请确保你的网络请求遵守了百度地图的使用协议和法律法规,不要用于非法或商业用途。
欢迎加入“前端组件开发学习”交流群,一起学习成长!可关注 “前端组件开发” 公众号后,私信后申请入群。