开源WebGIS在线教程¶
让所有人都能获得地理空间教育和机会。开源GIS“Geo for All” 是开源地理空间基金会的教育外联委员会,它与ICA、ISPRS、UN-GIS、AGILE、UCGIS、IGU和世界各地的其他合作伙伴密切合作,致力于让所有人都能获得地理空间教育和机会。
注意
此网站是开源的,托管在GitHub上:https://github.com/gislite/webgis-pub。
此网站基于https://demo.mapserver.org/tutorial/并且已经有了显著的改进。
备注
非常感谢 JET BRAINS 获取本教程回购的免费许可证。WebGIS涉及的技术很多, PyCharm IDE 对该项目来说是必要的,也是合适的。
日志:
2023年8月:从Jet Brains那里获得了IDE的免费许可证。
2023年7月:操作系统升级到Debian 12(以前是Debian 10)。MapServer已升级到8.0。从2023/7/7开始。
2022:本教程的源代码发布在Github上。
经历了一系列的重构。
使用PHP,使用模板进行重新构建。
集成到TorCMS中,作为动态网站。
使用PYTHON编写 Mapfile 处理的SSG,使用JJIA2进行网页管理。
最后使用Sphinx对页面进行管理。并保留 Mapfile 的脚本。
基于MapServer,并将提供WebGIS相关技术。
在转换过程中有大量的历史遗留问题需要解决。所有的请求都是受欢迎的。
引言¶
开源WebGIS教程网站是由两位作者根据合作过程中的实际工作经验创建的。开源WebGIS对地理信息系统技术和数据共享具有重要意义和实用价值。作为开源地理信息系统的在线教程,本网站的设计使用了可在线访问和操作的示例,以帮助用户了解WebGIS的原理和技术。此外,还解释了WebGIS的一些原理和背景,可以作为一般的WebGIS教程使用。
MapServer¶
MapServer最初是由明尼苏达大学和美国航天局(NASA)开发的开源WebGIS软件。MapServer本身是一个用C语言编写的程序,提供了两种开发模式,一种是基于CGI的开发模式,另一种是MapScrip模式的开发模式;可以使用服务器端的任何模块来编写WebGIS程序。作为WebGIS解决方案的MapServer是基于对象的,而MapFile和MapScrip模块的API组织的基本配置文件是基于对象的。MapServer通过实现OGC的几个标准来支持OGC的WMS/WFS服务规范,支持分布式访问和互操作。MapServer是基于胖服务器/瘦客户端模式开发的用于读取地理数据的WebGIS平台。GD库用于呈现JPEG/PNG/GIF格式的图像,将其发送回客户端浏览器。MapServer支持多种平台,如Windows、UNIX和Linux。MapScript支持的语言包括Python、PHP、Perl、Java、TCL、C#等。
MapProxy¶
MapProxy示例是一个基本的WMS Slice客户端。它显示了配置的各个层,没有更改投影的复杂功能,但足以验证该服务是否正常工作。
LeafletJS¶
Leaflet是一个现代的、开源的JavaScript库,用于构建移动友好的交互式地图。它是由Vladimir Agafonkin开发的,这是一个由专业贡献者组成的团队,只需少量代码,但它拥有开发人员开发的在线地图的大部分功能。Leaflet设计秉承简洁、高性能、易用的理念,在所有主要桌面和移动平台上高效运行。HTML5和CSS3的优势在现代浏览器中得到了利用,同时也支持旧的浏览器访问。支持插件扩展,友好、易用的API文档和简单、易读的源代码。
OpenLayers¶
OpenLayers是一个用于开发WebGIS客户端的JavaScript包。OpenLayers支持的来源包括谷歌地图、雅虎、地图、微软虚拟地球等。用户还可以使用简单的图像地图作为背景图像来覆盖OpenLayers中的其他层。在这方面,OpenLayers提供了很多选择。
此外,OpenLayers访问地理空间数据的方法符合行业标准。OpenLayers支持由Open GIS Association Service服务开发的WMS(Web Map Service)和WFS(Web Feature)等网络服务规范,可以通过远程服务来实现。发布为OGC服务的地图数据将加载到基于浏览器的OpenLayers客户端中进行显示。OpenLayers是以面向对象的方式开发的,使用了Prototype.js和Rico的一些组件。
Cesium¶
基于WebGL的前端3D JavaScript类库。Cs在2016年3月左右发布了3D地图切片数据规范,在gltf的基础上提供LOD功能。定位是Web环境下的海量3D模型数据。虽然目前的3D地图切片还处于Beta阶段,但也有相当多的缺陷。3D地图切片数据规范于2016年9月30日开始了OGC标准化进程,活跃成分仍然很大。
关于该网站¶
作者:gislite
中国科学院东北地理与农业生态研究所。博士,高级工程师
王卷乐
中国科学院地理科学与自然资源研究所。博士、研究教授职称
可再生资源和环境世界数据系统(WDS)主任
此新网站的开发是为了促进开源WebGIS的使用;
本教程的中文版由OSGeo中国中心-开放地理空间实验室维护;
本教程的第一部分是MapServer教程的中文翻译;
最初的MapServer教程在PHP环境中运行,目前已完全使用Python重写以生成静态网站;
该教程的开发使用了一些英文教程和官方网站案例;
配置单独的 MapServer 以提供地图服务;
请将任何问题和建议发送到bukun(At)osGeo.cn,并及时更正。
技术环境¶
操作系统:Debian Linux 12(bookworm),64位
Apache 2.4.57-2
cgi-mapserver 8.0.0-3+b8
MapProxy 1.15.1-2
构建环境¶
在Python3.11.2下构建,使用以下模块:
beautifulsoup4==4.11.1
Jinja2==3.1.2
lxml==4.8.0
mappyfile==0.9.7
Markdown==3.3.7
PyYAML==6.0