开源WebGIS在线教程

使所有人都能获得地理空间教育和机会。使用开放源码地理信息系统“Geo for All”是开放源码地理空间基金会的教育推广委员会,它与ICA、ISprs、联合国-地理信息系统、AGILE、UCGIS、IGU和世界各地的其他合作伙伴密切合作,致力于使所有人都能获得地理空间教育和机会。

注意

这个网站是开源的。托管在GitHub上:https://github.com/gislite/webgis-pub。欢迎 star。

该网站以 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上。

经历了一系列的重构。

  1. 使用PHP,使用模板进行重新构建。

  2. 集成到TorCMS中,作为动态网站。

  3. 使用PYTHON编写 Mapfile 处理的SSG,使用JJIA2进行网页管理。

  4. 最后使用Sphinx对页面进行管理。并保留 Mapfile 的脚本。

基于MapServer,并将提供WebGIS相关技术。

在转换过程中有大量的历史遗留问题需要解决。所有的请求都是受欢迎的。

引言

开源WebGIS教程网站是由两位作者根据合作过程中的实际工作经验创建的。开源WebGIS对地理信息系统技术和数据共享具有重要意义和实用价值。作为开源地理信息系统的在线教程,本网站的设计使用了可在线访问和操作的示例,以帮助用户了解WebGIS的原理和技术。此外,还解释了WebGIS的一些原理和背景,可以作为一般的WebGIS教程使用。

MapServer

_images/logo_mapserver.png

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

_images/logo_mapproxy.png

MapProxy示例是一个基本的WMS Slice客户端。它显示了配置的各个层。它没有更改投影的复杂功能,但足以验证该服务是否正常工作。

LeafletJS

_images/logo_leaflet.png

Leaflet是一个现代的、开源的JavaScript库,用于构建移动友好的交互式地图。它是由Vladimir Agafonkin开发的,这是一个由专业贡献者组成的团队,只需少量代码,但它拥有开发人员开发的在线地图的大部分功能。Leaflet设计秉承简洁、高性能、易用的理念,在所有主要桌面和移动平台上高效运行。HTML5和CSS3的优势在现代浏览器中得到了利用,同时也支持旧的浏览器访问。支持插件扩展,友好、易用的API文档和简单、易读的源代码。

OpenLayers

_images/logo_openlayers.png

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

_images/logo_cesium.png

基于WebGL的前端3D JavaScript类库。Cs在2016年3月左右发布了3D地图瓦片数据规范,在gltf的基础上提供LOD功能。定位是Web环境下的海量3D模型数据。虽然目前的3D地图瓦片还处于Beta阶段,但也有相当多的缺陷。然而,3D地图瓦片数据规范于2016年9月30日开始了OGC标准化进程,活跃成分仍然很大。

关于该网站

作者:gislite

中国科学院东北地理与农业生态研究所。博士,高级工程师

王卷乐

中国科学院地理科学与自然资源研究所。博士、研究教授职称

可再生资源和环境世界数据系统(WDS)主任

_images/authors.jpg
  • 这个新网站的开发是为了促进开源WebGIS的使用;

  • 本教程的中文版由OSGeo中国中心-开放地理空间实验室维护;

  • 本教程的第一部分是MapServer教程的中文翻译;

  • 最初的MapServer教程在PHP环境中运行,目前已完全使用Python重写以生成静态网站;

  • 该教程的开发使用了一些英文教程和官方网站案例;

  • 配置单独的 MapServer 以提供地图服务;

  • 请将任何问题和建议发送到bukun(At)osGeo.cn,并及时更正。

技术环境

  • 操作系统:Debian Linux 12(书虫),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

目录