qgis 添加 百度地图
时间: 2025-05-15 15:14:34 浏览: 92
### 在 QGIS 中配置并添加百度地图作为瓦片服务
为了在 QGIS 中成功加载百度地图作为底图,可以通过自定义 XYZ 图层的方式实现。由于官方并未提供直接支持百度的地图服务接口,因此需要手动输入特定 URL 来访问百度地图的服务。
对于百度地图的标准样式,在 QGIS 的“浏览器面板”或者通过“图层 -> 添加 XYZ 图层”,可以按照如下方式设置:
- **名称**: 百度卫星 (或其他自定义名字)
- **URL/URI**:
```plaintext
http://shangetu{s}.bdimg.com/admin/{z}/{x}_{y}.jpg?app=web&v=010&udt=20170526143819&s={s}
```
其中 `{s}` 是子域名占位符,通常取值范围为 `0` 到 `3`;而 `{z}`, `{x}`, 和 `{y}` 分别代表缩放级别、X 坐标以及 Y 坐标的占位符[^1]。
需要注意的是,上述方法适用于某些版本的百度地图数据,但并不保证长期稳定可用,因为这依赖于外部资源,并且可能受到服务商政策变化的影响。如果遇到无法正常显示的情况,建议查阅最新资料或尝试其他第三方提供的兼容服务[^2]。
另外一种解决方案是利用 GeoServer 进行离线部署高德、百度等国内主流在线地图源,并结合 MapBoxGL 实现纠偏功能,从而更灵活地集成到 QGIS 当中。这种方法涉及更多技术细节和前期准备工作,但对于有定制化需求的应用场景来说是一个不错的选择。
#### Python脚本示例用于批量处理坐标转换(可选)
当涉及到大量地理空间数据分析时,可能会用到Python来进行辅助操作。下面给出一段简单的代码片段来演示如何使用 pyproj 库完成 WGS84 转 BD09 坐标系变换:
```python
from pyproj import Transformer
def wgs84_to_bd09(lon, lat):
transformer = Transformer.from_crs("EPSG:4326", "EPSG:900913")
bd_lon, bd_lat = transformer.transform(lat, lon)
x_pi = 3.14159265358979324 * 3000.0 / 180.0
x = bd_lon - 0.0065
y = bd_lat - 0.006
z = math.sqrt(x * x + y * y) - 0.00002 * math.sin(y * x_pi)
theta = math.atan2(y, x) - 0.000003 * math.cos(x * x_pi)
gg_lon = z * math.cos(theta)
gg_lat = z * math.sin(theta)
return round(gg_lon, 6), round(gg_lat, 6)
```
此函数接收经度纬度参数返回对应的BD09坐标值,可用于后续的空间分析工作流当中。
阅读全文
相关推荐
















