首页 GIS基础理论 QGIS入门指南:从qgis online开始学习

QGIS入门指南:从qgis online开始学习

作者: GIS研习社 更新时间:2025-08-23 12:08:59 分类:GIS基础理论

QGIS 与 qgis online 常常在项目开工的第一天就被提及:我如何尽快把一张地图从桌面端发布到浏览器,让同事和甲方随时查看与标注?作为长期在规划院与科技企业穿梭的 GIS 工程师,我更倾向“从在线开始”的学习路径,因为它能把“成果立刻可见”的正反馈带给新手,也能逼迫我们在真实约束(网络、权限、性能、标准)下建立正确的知识图谱。

QGIS入门指南:从qgis online开始学习

我们在谈论的“qgis online”到底是什么

QGIS 与 qgis online 在语义上存在一个容易混淆的点:QGIS是开源的桌面 GIS 软件,而qgis online并非官方产品名,行业里通常用它泛指“围绕 QGIS 的在线托管与协作生态”,包括:

  • QGIS Cloud:第三方托管服务,提供 QGIS 项目一键上云、自动生成 WMS/WFS/WMTS 链接与浏览器查看页。
  • QGIS Server:QGIS 的服务器组件,发布 OGC 标准服务(WMS/WFS/WCS/OGC API-Features 等),常与 Lizmap Web Client 搭配构建可配置的 Web 地图门户。
  • Mergin MapsQField:围绕 QGIS 的云端协作与移动外业生态,实现离线采集、双向同步与版本管理。
  • qgis2web:QGIS 插件,把样式与图层导出为 Leaflet/MapLibre 的静态网页,轻量快速。
重要说明:qgis online 在本文中作为“QGIS 相关在线发布与协作方案”的统称。与 Esri 的 ArcGIS Online 为同类场景的不同产品与生态,请读者注意区分。

为什么建议从“在线体验”切入 QGIS 学习

QGIS 与 qgis online 的组合,能在最短路径上回答三个关键问题:是什么、为什么、怎么做。

  • 是什么:把 QGIS 桌面端样式、数据与分析结果,经由 WMS/WFS 或静态页面,转换成可分享的 Web 地图。
  • 为什么:在线可见意味着团队同步、需求澄清与迭代速度大幅提升;同时你会被动掌握 OGC 标准、坐标系、性能与权限等“上线必修课”。
  • 怎么做:选择托管(QGIS Cloud/Mergin/Lizmap Cloud)或自建(QGIS Server+Lizmap),在 QGIS 里配置好项目元数据与样式,发布并分享链接。

准备与环境搭建(零门槛与标准化两条路径)

QGIS 与 qgis online 的入门有两条主路线:零门槛的托管体验,和标准化的本地+在线结合。

路径 A:零门槛(仅浏览器/轻桌面)

  1. 注册 QGIS Cloud 与/或 Mergin Maps 账号。
  2. 安装 QGIS LTR(长期支持版),避免版本频繁变化带来的兼容问题。
  3. 在 QGIS 中加载示例数据(如 Natural Earth/OSM),完成样式配置。
  4. 使用 QGIS Cloud 插件一键发布;或用 qgis2web 导出静态网页并部署到任意静态主机(如 GitHub Pages)。

路径 B:标准化(自建可控)

  1. 使用 Docker 启动 QGIS Server,保证环境一致性。
  2. 部署 Lizmap Web Client,通过 QGIS 插件生成 Web 地图配置。
  3. 连接 PostGIS 存储矢量数据,Tile 服务存储栅格瓦片,分层优化。
  4. 通过 OGC 标准服务和反向代理(Nginx/Apache)提供稳定的 HTTPS 访问。

快速上手:用 QGIS Cloud 发布第一张在线地图

QGIS 与 qgis online 的最短闭环,是用 QGIS Cloud 实现“桌面到浏览器”的首发。

  1. 在 QGIS 中安装“QGIS Cloud”插件并登录账号。
  2. 准备数据:优先使用 GeoPackagePostGIS,字段命名英文化,字符集 UTF-8。
  3. 设置项目:项目属性 → 常规 → 填写 投影(CRS)、元数据与可用范围;布局排版生成预览图(可选)。
  4. 样式与符号:尽量使用简单渲染或分级渲染,避免过多表达式带来渲染负担。
  5. 插件发布:选择需要的图层,勾选公开/私有与交互项(弹窗模板),点击发布。
  6. 获取链接:复制自动生成的 WMS/WFS/WMTS 服务地址与分享页面 URL,发给团队测试。
特性 QGIS Cloud(入门) QGIS Server + Lizmap(自建) qgis2web(静态)
部署难度 极低 中-高
OGC 标准 WMS/WFS/WMTS WMS/WFS/WCS/OGC API-Features 无(前端切片或矢量直读)
权限与定制 有限 靠前端与静态托管

自建可控方案:QGIS Server + Lizmap(可配置 Web 门户)

QGIS 与 qgis online 的工程化落地,常见路线是用 Docker 快速拉起 QGIS Server,再用 Lizmap 把 QGIS 项目“翻译”为 Web 可配置应用。

Docker 快速启动 QGIS Server

# 使用官方镜像启动 QGIS Server(示例)
# 将本地 /path/to/project 挂载到容器的 /project
docker run -d --name qgis-server 
  -p 8080:80 
  -e QGIS_SERVER_LANDING_PAGE=true 
  -v /path/to/project:/project 
  qgis/qgis-server:latest

# 访问服务能力(WMS GetCapabilities)
# http://localhost:8080/ows/?SERVICE=WMS&REQUEST=GetCapabilities

QGIS 项目配置要点

  • 项目属性 → OWS 服务:填写 标题/摘要/关键词,勾选要发布的图层并命名。
  • 图层字段别名、表单与弹窗模板预先定义,减少前端配置工作量。
  • 尽量用 GeoPackage/PostGIS,避免碎片化 Shapefile,统一编码与字段类型。
  • 设置有效范围与默认坐标系(Web 场景常用 EPSG:3857 或 EPSG:4326)。

接入 Lizmap Web Client

  1. 在 QGIS 安装 Lizmap 插件,按项目生成 Lizmap 配置(图层可见性、过滤、弹窗、测量、打印等)。
  2. 部署 Lizmap Web Client(或使用托管方案),上传 QGIS 项目与配置文件。
  3. 通过反向代理提供 HTTPS 域名,配置缓存(如地图瓦片、WMS 请求缓存)以提升性能。

面向浏览器的轻量发布:qgis2web

QGIS 与 qgis online 的轻量路线,常用 qgis2web 将 QGIS 样式导出为 Leaflet/MapLibre 静态网页,无需服务器即可上 CDN。

  1. 在 QGIS 中调整样式,控制图层数量与字段,确保几何与属性干净。
  2. 使用 qgis2web 插件选择框架(Leaflet/MapLibre)、交互(弹窗、量测)、底图与缩放级别。
  3. 导出目录(HTML/CSS/JS/数据),上传到任意静态托管(如 GitHub Pages、Netlify)。

在线协作与移动采集:Mergin Maps / QField

QGIS 与 qgis online 的协作维度,推荐 Mergin MapsQField 构建“桌面-云-移动”的闭环,尤其适合外业采集与同步。

  1. 在 QGIS 设计数据结构(字段、约束、域值),并配置表单与离线地图包(MBTiles)。
  2. 连接 Mergin 项目仓库,一键同步到云端。
  3. 在手机端(Mergin Maps App 或 QField)登录并同步项目,离线采集后回到网络区自动双向合并。
  4. 在 QGIS 中查看变更历史与冲突解决,按需发布到 QGIS Cloud/Lizmap。

数据与坐标系的核心知识(是什么、为什么、怎么做)

QGIS 与 qgis online 的成功上线,80% 取决于数据规整与坐标系:这是“看不见的地基”。

  • EPSG:4326(WGS 84):纬经度坐标,适合数据交换与属性查询,但 Web 实时渲染比例尺感知弱。
  • EPSG:3857(Web Mercator):Web 地图事实标准,匹配主流底图(OSM/XYZ),可视化兼容最好。
  • 地方坐标/投影:精度好但不通用,上线前需统一到 4326/3857,或在服务端提供坐标转换。
# 使用 PyQGIS 将图层统一到 Web 场景常用坐标系(示例)
project = QgsProject.instance()
layer = QgsVectorLayer("/data/roads.gpkg|layername=roads", "roads", "ogr")

# 目标坐标系:EPSG:3857(Web Mercator)
target_crs = QgsCoordinateReferenceSystem("EPSG:3857")
task = QgsVectorFileWriter.writeAsVectorFormatV2(
    layer,
    "/data/roads_3857.gpkg",
    QgsCoordinateTransformContext(project.transformContext()),
    QgsVectorFileWriter.SaveVectorOptions(
        driverName="GPKG",
        layerName="roads_3857",
        fileEncoding="UTF-8",
        ct=QgsCoordinateTransform(layer.crs(), target_crs, project.transformContext())
    )
)
# 说明:导出为 GeoPackage,保持编码统一,避免 Shapefile 的字段长度与编码限制

端到端示例工作流:从数据到在线分享(30 分钟内)

QGIS 与 qgis online 的组合,在一个“小型市政设施巡检”的示例里可以这样落地:

  1. 准备:导入设施点线面(GPKG),设置字段约束(必填、唯一),定义表单(下拉选项)。
  2. 样式:按“设施类型”分类渲染,设置可读标注(避免表达式过重)。
  3. 移动:创建 Mergin 项目,上传数据与样式;手机端同步,离线采集新增点并拍照(附件路径字段)。
  4. 合并:回到办公室自动同步到 QGIS,检查冲突与修正。
  5. 发布:通过 QGIS Cloud/Lizmap 发布浏览器地图,开放“设施类型”筛选与弹窗模板。
  6. 分享:发送 URL 给项目群,收集反馈并滚动更新样式与字段。

常见问题与排错(经验速查)

  • 坐标错乱:图层无定义 CRS 或与项目不一致,先定义(Define)再重投影(Reproject)。
  • 中文乱码:统一 UTF-8,避免 Shapefile;使用 GeoPackage/PostGIS。
  • 服务不可见:检查 OWS 是否勾选图层、项目范围是否过小、图层权限是否公开。
  • 跨域/CORS:前端直连 WMS/WFS 需在服务器开启 CORS 或通过反向代理统一域名。
  • HTTPS 混合内容:页面是 HTTPS,底图或服务却是 HTTP,需改为 HTTPS 或走反代。
  • 性能:简化几何、裁剪范围、使用瓦片(栅格/矢量)、为 PostGIS 建索引,合理设置最大比例尺可见性。
  • 符号不一致:部分高级渲染/表达式 Web 端不佳,尽量使用通用渲染器;qgis2web 导出前做简化。

进阶与最新动向(把握方向而非追新)

QGIS 与 qgis online 的技术演进核心围绕标准与性能:

  • OGC API-Features:QGIS Server 正在完善对新一代 OGC API 的支持,相比传统 WFS 更友好于 Web/分页/JSON。
  • 矢量瓦片:QGIS 桌面对矢量瓦片消费日趋完善;服务器侧常结合专用瓦片服务(如 TileServer GL、MapLibre 生态)。
  • 长周期版本:生产环境优先 QGIS LTR,配合容器化与 CI/CD,保证环境可复现。

安全、版权与合规

QGIS 与 qgis online 的公开发布,应把权限、版权与合规作为上线前清单:

  • 数据脱敏与最小必要披露:坐标扰动、属性脱敏、按需公开。
  • 分级访问:公开底图、内部敏感专题;Lizmap/Mergin 提供细粒度权限控制。
  • 版权溯源与标注:OSM、Natural Earth、政府开放数据须保留署名与许可证信息。
  • 日志与审计:记录访问与变更,满足项目或法规要求。

实践中的几个小技巧

  • 用表单域值和默认值:减少外业录入错误,保证数据质量。
  • 在项目里写“自说明”:项目元数据、图层别名、字段描述为后续协作省下大量沟通成本。
  • ASCII 架构速记
    [QGIS Desktop] --(OWS 配置)--> [QGIS Server] --(WMS/WFS/OGC API)--> [Lizmap/前端]
               --(qgis2web 导出)--> [静态托管/CDN]
               --(Mergin/QField)--> [移动外业/同步]

总结与行动建议

QGIS 与 qgis online 的学习,不要从“功能大全”开始,而要从“把一张地图上线”开始。先用 QGIS Cloud 或 qgis2web 打通首个闭环,再根据需求走向 QGIS Server+Lizmap 的可控方案,用 Mergin/QField 补齐协作与外业,过程中坚持“数据规整与坐标统一优先”的工程习惯。

行动建议:

  1. 今天就用 qgis2web 或 QGIS Cloud 发布一张示例地图,获得反馈。
  2. 本周用 Mergin 完成一次外业采集闭环,体验协作与版本控制。
  3. 下月搭建一套最小可用的 QGIS Server+Lizmap 环境,形成可复用模板。

作为 GIS研习社的 Dr.gis,我愿意继续讨论你的数据、坐标系与发布问题。你在项目里最大的阻碍是什么:规范、权限还是性能?欢迎把问题带到 gisyxs.com,一起拆解。

参考文献

  • QGIS 官方首页与下载:https://qgis.org
  • QGIS 官方文档(含 Server/用户手册):https://docs.qgis.org/latest/en/docs/
  • QGIS Server 手册(OGC/部署):https://docs.qgis.org/latest/en/docs/server_manual/
  • QGIS Cloud 官方网站:https://qgiscloud.com/
  • Lizmap Web Client 文档:https://docs.lizmap.com/current/en/
  • qgis2web 插件(GitHub):https://github.com/tomchadwin/qgis2web
  • Mergin Maps 官方网站:https://merginmaps.com/
  • Mergin Maps 文档:https://docs.merginmaps.com/
  • QField(与 QGIS 协同的外业 App):https://qfield.org/
  • OGC 标准组织(WMS/WFS/OGC API):https://www.ogc.org/
  • EPSG 坐标系注册库:https://epsg.org/home.html
  • PostGIS 官方网站:https://postgis.net/
  • Natural Earth 开放地理数据:https://www.naturalearthdata.com/
  • OpenStreetMap 开放地图数据:https://www.openstreetmap.org/
相关文章