folium高德地图和实际显示的地图不一致
时间: 2025-06-29 16:16:53 浏览: 13
### Folium与高德地图显示不一致解决方案
当遇到Folium与高德地图显示不一致的情况时,主要原因是由于两者采用不同的坐标系编码方式。具体来说,百度地图和高德地图使用的经纬度坐标系存在差异,因此在同一位置上的经纬度数值会有所不同[^1]。
为了使Folium能够正确显示来自高德地图的数据,可以采取以下措施:
#### 坐标转换
最直接的方法是对获取到的高德坐标进行转换,使其适应于WGS84或其他通用坐标系统后再用于Folium绘制。Python中有多个库可以帮助完成这一过程,比如`pyproj`或专门针对中国地区的`gcj02towgs84`工具包。
```python
from pyproj import Transformer
def gcj_to_wgs(gcj_lng, gcj_lat):
transformer = Transformer.from_crs("epsg:4490", "epsg:4326") # GCJ-02 to WGS84
wgs_lng, wgs_lat = transformer.transform(gcj_lng, gcj_lat)
return wgs_lng, wgs_lat
```
通过上述函数可实现从GCJ-02(即火星坐标系,适用于高德地图)向WGS84坐标的转变,从而确保数据能在全球范围内被准确定位并应用于Folium的地图渲染中。
#### 使用自定义瓦片层
另一种方法是在Folium中引入特定于高德地图的瓦片服务器URL作为底图源。这样即使原始坐标未做任何变换也能较好匹配实际地理位置。不过需要注意的是,这种方法可能涉及到版权问题以及API访问权限等问题,在正式项目应用前需谨慎评估。
```python
import folium
m = folium.Map(location=[lat, lng], zoom_start=12)
folium.TileLayer(
tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}',
attr="高德地图",
name="gaode"
).add_to(m)
m.save('map.html')
```
以上两种策略可以根据具体情况灵活选用,以达到最佳效果。
阅读全文
相关推荐


















