WebGIS开发入门 | 从 Web 开发到地图开发,差别在哪儿?

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开发教程持续更新中

点个关注不迷路👇

相关推荐
IMPYLH1 小时前
HTML 的 <p> 元素
前端·javascript·html
leoZ2311 小时前
第 4 篇:布局骨架——页面壳、栅格、卡片
前端·javascript·vue.js·opencv·计算机视觉·数据挖掘·语音识别
何以解忧,唯有..1 小时前
Vue 3 模板语法详解:从插值到指令的完整指南
前端·javascript·vue.js
invicinble1 小时前
【无标题】
前端
EasyGBS1 小时前
从接入到稳定播放:无插件直播H5视频流媒体播放器EasyPlayer.js如何撑起Web端流媒体
开发语言·前端·javascript
不可能片场1 小时前
nohup 之后进程还是死了:GUI 子进程的存活陷阱
前端·electron
名为沙丁鱼的猫7291 小时前
React/JSX 编码规范
前端·javascript·react.js
是吕先森1 小时前
【python】selenium实现web自动化测试
前端·python·selenium