01 、WebGIS 开发VS Web 开发的区别
WebGIS 开发本身也是一个 Web 开发的过程,它同样会有三端,主要就是一个前后端交互,中间还有服务器层。
简单来说,可以分成这三层:
-
前端(客户端 UI 层) :也就是浏览器端。但和传统 Web 开发不同的是,前端会涉及到地图框架来辅助做地图的可视化效果。
-
中间层(服务器) :这里会引用到一个GIS 服务器的概念,比如: GeoServer、MapServer。
-
数据层:除了服务器,还有数据层,整体分为这三层,比如 PostGIS+ 矢量/栅格数据
所以,WebGIS 不是独立的体系,而是 Web 开发在空间维度上的延伸。你以前用的那一套前后端逻辑依然适用,但数据类型和交互方式变了。

02 、WebGIS开发的两种前后端交互模式
在 WebGIS 里,前后端交互主要有两种过程,可能和你传统 Web 开发的经历不太一样。
第一种:地图显示时的"自动请求"
当你打开一个地图网页,或者双击、拖动、改变了当前的地图显示范围时,前端会发送请求,后端响应请求,返回合适范围的地图图片数据。
这个过程对用户是透明的------你并没有点任何"查询"按钮,但地图框架自动帮你完成了前后端交互。
第二种:空间数据的存储
比如你在前端绘制了一个数据,绘制完成后主动发起请求,前端将数据发送到后端,后端存储到数据库。
这一块和传统 Web 开发类似,都是增删查改,但不同的是:这边是空间数据,需要使用空间数据库(如 PostGIS),存储的数据也是矢量数据(GeoJSON、WKT、Shapefile 等)。主要差异就在数据的存储以及数据格式上。
03 、前后端分工的边界
前端在 WebGIS 中尽可能去完成一些在硬件条件资源下可以完成的逻辑,承担更多的渲染与计算任务,一是为后端分担任务,二是可以有更好的交互体验。
但当数据量庞大时(如三维地形、海量矢量要素),前端计算会迅速耗尽客户端内存,影响用户体验。所以后端哪怕再弱,它还是有必要去存在的------无论是只提供静态资源,还是只提供 REST API 服务。
尤其是在 Cesium 等三维框架中,数据量可能达到 GB 甚至 TB 级别,后端的查询、裁剪、流式传输能力至关重要。
总结:
从 Web 开发到 WebGIS 开发,核心认知是:架构相似,但数据变了。
你依然在做前后端交互,但交互的是空间数据;你依然有服务器,但多了一层 GIS 服务器;你的前端依然跑在浏览器里,但多了一个地图可视化引擎。而地图加载时的前后端交互,是由框架自动完成的------这一点和传统 Web 开发中"点击按钮才发请求"的逻辑很不一样。
下篇预告: 为什么你按照官网示例写了代码,数据却不显示?或者明明坐标写对了,位置却偏移了?
WebGIS开发教程持续更新中
点个关注不迷路👇