QGIS 根据点位批量出图

该教程介绍了如何利用QGIS和QuickMapServices插件进行地图截图,并通过CSV文件导入点位数据。在设置好底图和布局后,使用地图集功能批量生成截图。针对点位修改和密集显示的问题,文章还展示了如何用Python在图片上添加红点和文字信息,优化图片效果。

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

背景

在工作中,当有大量项目点位需要结合地图介绍时,则需要批量截图。于是有了今天的教程。

一 工具及材料准备

QGIS

        插件 QuickMapServices

点位集合 CSV文件

其他图层文件

二 导入图层

这里根据实际需要导入自己对应格式的就好。

图层-添加图层-添加分割文本 

 同时也导入你想要配置的其他图层,比如水系等。

三 添加底图

添加底图的方式有很多,XYZ tile,或者插件都可以。

我这里用插件QuickMapServices介绍。

选择Google satellite-谷歌卫星底图。如果显示不了,估计是没有用科学。也可以用天地图等图源。谷歌卫星图更新一点。

 样式设置略过,如果是水环境相关出图建议参考《地表水环境质量评价技术规范》相关设置。

效果还可以。

 四 出图

工程-布局管理器,新建一个布局

 地图集-地图集设置 

选择你想要批量截图的图层,以及排序的字段,以及文件的字段等。

 添加地图-绘制一个你想要的底图 

 在项属性下调整

比例选择自己合适的,勾选受控于地图集

 设置好后可在上方预览栏点击预览,看是否达到想要的效果。

 

最后导出地图集

dpi 选择300的话需要等待一会儿。

 成功,不得不说效果是真的棒!

 

五 后续完善

后面遇到痛点

问题1.点位可能需要修改 如何单独出图

问题2.如果全部显示点的名称和位置,有的距离较近出图会比较乱

使用python在图片中心批量添加红点和名称

import os
from PIL import Image, ImageDraw, ImageFont

def add_text_and_dot(image_path, output_dir):
    # 打开图片
    image = Image.open(image_path)
    draw = ImageDraw.Draw(image)

    # 获取图片名称
    image_name = os.path.splitext(os.path.basename(image_path))[0]

    # 设置字体和颜色
    font = ImageFont.truetype(r"D:\000入河排污口共享文件\入河排污口_卫星图\字体\MiSans Semibold.ttf", 40)
    text_color = (255, 255, 255)

    # 计算文字尺寸
    text_width, text_height = draw.textsize(image_name, font=font)

    # 在图片中心添加红点和文字
    center_x = image.width // 2
    center_y = image.height // 2
    # 控制图形大小
    size=15
    draw.ellipse((center_x - size, center_y - size, center_x + size, center_y + size), fill=(255, 0, 0))
    draw.text((center_x - text_width // 2, center_y - text_height // 2+50), image_name, fill=text_color, font=font)

    # 保存修改后的图片
    output_path = os.path.join(output_dir, os.path.basename(image_path))
    image.save(output_path)


# 替换以下路径为你的图片文件夹路径
input_dir = r"D:\000入河排污口共享文件\入河排污口_卫星图\images"
# 替换以下路径为你想要保存修改后图片的文件夹路径
output_dir = r"D:\000入河排污口共享文件\入河排污口_卫星图\output"

for file in os.listdir(input_dir):
    if file.endswith(".png"):
        add_text_and_dot(os.path.join(input_dir, file), output_dir)

运行后效果如下:

效果比之前好多了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

细节处有神明

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值