Python有关folium库在地图上批量标记地点的示例(基于高德地图)

本文介绍如何使用Python的folium库在高德地图上批量标注地点,包括从地名获取高德经纬度、转换百度经纬度、利用pandas读取Excel数据、在Leaflet地图上标记点位和线路,以及保存为html。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 目录

一、本文章实现功能

二、代码及使用方法

        1. 本文所使用的python库

        2. 由具体地名获得其对应高德标准经纬度

        3. 将百度标准经纬度转换成高德标准经纬度

        4. pandas库将excel中的经纬度等信息导入

        5. folium库生成地图图层

        6. folium库将高德标准经纬度对应的点位标注在Leaflet(网页)上

        7. folium库将两个高德标准经纬度所连路段标注在Leaflet(网页)上

        8. 保存生成的地图为html

三、总结及补充说明


一、本文章实现功能

1. 根据地名查找对应的高德标准经纬度
2. 将百度标准经纬度转换成高德标准经纬度
3. 将excel中的经纬度等信息导入
4. 将高德标准经纬度对应的点位标注在Leaflet(网页)上
5. 将两个高德标准经纬度所连路段标注在Leaflet(网页)上

二、代码及使用方法

1. 本文所使用的python库
import folium
from folium.plugins import FloatImage
import pandas
import requests
import math

下载库:在cmd中输入以下代码或在pycham中下载。(File - Settings - Project:untitled - Poject Interpreter - "+" - 搜索库名)

pip install folium
pip install pandas
pip install requests

2. 由具体地名获得其对应高德标准经纬度
def gd_map(addr):
    para = {'key': 'xxxxxxxxxxxxxxxxxxx', 'address': addr}  # key填入自己在高德开放平台上申请的key
    url = 'https://restapi.amap.com/v3/geocode/geo?'  # 高德地图地理编码API服务地址
    result = requests.get(url, para)  # GET方式请求
    result = result.json()
    lon_lat = result['geocodes'][0]['location']  # 获取经纬度
    lon_lat = lon_lat.split(",")  # 把经纬度以","为界分割
    lon = float(lon_lat[0])  # 获取的经纬度格式为[经度,纬度]
    lat = float(lon_lat[1])
    print(addr, "的高德标准经纬度为: (", lon, ",", lat, ")")
    return lon, lat  # 返回经纬度(float)
addr = '杭州市杭州东站'  # 输入想要查询的文字地址(尽量详细)
lon, lat = gd_map(addr)  # 调用函数
函数名 gd_map
传入数据 查询地址addr(str)
返回数据 经度lon(float),纬度lat(float)

首先要自己注册一个高德地图开放平台的开发者账号并进行认证(官方网址:高德开放平台 | 高德地图API) ,登陆后点击右上角头像旁边的“控制台”,进入高德控制台页面。点击左侧”应用管理“及下面的”我的应用“,点击右上角的”创建新应用“,设置好名称和类型。

 在我的应用中找到刚刚创建的应用,点击”添加key“。

之后在”服务平台“中勾选”Web服务“,我们主要需要的是其中的地理编码API。

然后把key下面的一串字符串复制下来,填入代码中第二行的'key'=' '内即可。

查询时在倒数第二行的addr = ' '内输入想查询的地点,该函数会返回其对应的经度lon(float)以及纬度lat(float)。

示例:addr &#

要在高德地图上绘制路线图,可以使用高德地图的Web API和Python的第三方requests。下面是一个示例代码,演示如何使用高德地图的Web API和requests来获取路线数据并在地图上绘制: ```python import requests import folium # 高德地图Web API的URL url = 'https://restapi.amap.com/v3/direction/driving' # 高德地图Web API的参数 params = { 'key': 'your_amap_api_key', # 替换为你自己的高德地图API密钥 'origin': '116.481028,39.989643', # 起点经纬度,格式为"经度,纬度" 'destination': '116.434446,39.90816', # 终点经纬度,格式为"经度,纬度" } # 发送GET请求获取路线数据 response = requests.get(url, params=params) data = response.json() # 解析路线数据 route = data['route']['paths'][0]['steps'] # 创建地图对象 m = folium.Map(location=[39.989643, 116.481028], zoom_start=13) # 添加起点和终点标记 start_point = [39.989643, 116.481028] end_point = [39.90816, 116.434446] folium.Marker(location=start_point, icon=folium.Icon(color='green')).add_to(m) folium.Marker(location=end_point, icon=folium.Icon(color='red')).add_to(m) # 添加路线 for step in route: polyline = step['polyline'] coordinates = polyline.split(';') points = [[float(coord.split(',')[1]), float(coord.split(',')[0])] for coord in coordinates] folium.PolyLine(locations=points, color='blue').add_to(m) # 保存地图为HTML文件 m.save('route_map.html') ``` 在这个示例代码中,我们首先使用requests发送GET请求来获取路线数据。需要将`your_amap_api_key`替换为你自己的高德地图API密钥。然后,我们解析路线数据并提取出每个步骤的坐标点。接下来,我们使用folium创建地图对象,并添加起点和终点的标记,以及每个步骤的路线。最后,我们使用`m.save`将地图保存为HTML文件。 运行该代码后,将生成一个名为`route_map.html`的HTML文件,其中包含了在高德地图上绘制好的路线图。您可以在浏览器中打开该文件,查看绘制好的路线图。 请根据您的实际需求修改起点和终点的经纬度以及其他参数,以生成对应的路线图。希望对您有帮助!
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值