“人人共享”使命的核心是认为知识是一种公共利益,教育中的开放原则将为每个人提供巨大的机会。 虽然我们社区的成员来自不同的背景,但我们都寻求消除数字鸿沟,赋予所有人充分的公民权利,并为建立开放知识做出贡献,造福于整个社会和子孙后代。

关注公众号


OSGeo:开源GIS技术群

购买《开源WebGIS》

《开源 WebGIS 在线教程:地图发布与地图服务》已于2020年11月由科学出版社正式出版。有需要的读者可以通过下面方式购买。

请注意,本书涉及的WebGIS技术包括MapServer、MapProxy、Leaflet,不包括GeoServer、OpenLayers


开源WebGIS一书作者
网站说明
● 本网站的开发,基于项目工作中的经验进行总结,是为推广宣传开源 WebGIS 的使用;
● 此教程中文版本由OSGeo中国中心——开放地理空间实验室维护;
● 教程最开始做的是 MapServer 教程中文翻译;原来 MapServer 教程运行在PHP环境下,目前完全使用Python重写生成静态网站;
● 教程的开发使用了一些英文教程及官网案例;
● 配置了单独的MapServer服务器提供地图服务;
● 任何问题与建议请发送至邮件 bukun (at) osgeo.cn ,会及时进行修正。
网站运行与编译环境

本网站运行的服务器配置环境如下:

  • - 操作系统:Debian Linux 10, 64位
  • - Apache 2.4.38-3+deb10u4/li>
  • - CGI MapServer 7.2.2-1
  • - MapProxy 1.11.0-3+deb10u1

本网站使用 Python 3.7.3 生成,使用下面的模块:

  • - OpenpyXL==2.4.9
  • - BeautifulSoup4==4.7.1
  • - Jinja2==2.10-2
  • - lxml==4.3.2-1
  • - MappyFile==0.8.2
  • - Markdown==3.0.1-3
  • - PyYAML==3.13-2

开源 WebGIS 在线教程:地图发布与地图服务

开源WebGIS封面

作者:

卜坤
中国科学院东北理与农业生态研究所,博士,高级工程师
王卷乐
中国科学院地理科学与资源研究所,博士,研究员;世界数据系统-可再生资源与环境数据中心主任

教程说明

开源WebGIS教程网站是两位作者在合作过程中基于实际工作经验进行总结提炼而产生的。开源 WebGIS 对于GIS技术与数据共享工作都有很多意义,也有很多技巧值得分享。

本网站设计作为开源 GIS 的在线教程,使用可在线访问、操作的实例以方便用户实际了解 WebGIS 的原理与技术。 另外,也对 WebGIS 的一些原理与背景进行说明,可用作一般的 WebGIS 教程。

MapServer

MapServer最初是由美国明尼苏达大学和美国太空总署(NASA)开发的一个开源的WebGIS软件。 MapsServer本身是由C语言编写的程序,提供了两种开发模式,一种是基于CGI的,另一种是MapScript方式; 在服务器端可以使用任一模块,编写WebGIS程序。 MapServer作为WebGIS解决方案是基于对象的,基本配置文件 MapFile 和 MapScript 模块的API组织都是基于对象的。 MapServer通过实现 OGC 的若干标准,支持分布式访问和互操作,支持 OGC 的 WMS/WFS 服务规范。 MapServer是基于胖服务器/瘦客户端模式开发的 WebGIS 平台,读取地理数据, 并利用 AGG 库渲染 JPeg/PNG/GIF 格式的图片后再传回客户端浏览器。 MapServer支持 Windows、UNIX、Linux等多种平台, 支持的语言包括 Python,PHP,Perl,Java,Tcl,C# 等。

MapProxy

MapProxy 是 WMS 网页地图服务与切片服务提供者的瑞士军刀。它对已有地图服务的数据服务进行缓存、加速和转换,服务任何支持 OGC 标准的桌面与网页客户端。 MapProxy 开发与部署方式灵活,易于同 Apache/Nginx 环境等集成。MapProxy 也能作为一个独立服务使用,这是对于新用户而言最容易的方式。  MapProxy 的默认示例是一个基本的 WMS 切片客户端,它显示了配置的各个图层;不具备改变投影等复杂功能,但足以验证服务是否正常运行。

LeafletJS

Leaflet 是一个为建设移动设备友好的互动地图,而开发的现代的、开源的 JavaScript 库。 它是由 Vladimir Agafonkin 带领一个专业贡献者团队开发,代码量很小,但具有开发人员开发在线地图的大部分功能。 Leaflet设计坚持简便、高性能和可用性好的思想,在所有主要桌面和移动平台能高效运作, 在现代浏览器上会利用HTML5和CSS3的优势,同时也支持旧的浏览器访问。 支持插件扩展,有一个友好、易于使用的API文档和一个简单的、可读的源代码。

OpenLayers

OpenLayers是一个用于开发WebGIS客户端的JavaScript包。 OpenLayers 支持的地图来源包括Google Maps、Yahoo、Map、微软Virtual Earth 等, 用户还可以用简单的图片地图作为背景图,与其他的图层在OpenLayers 中进行叠加, 在这一方面OpenLayers提供了非常多的选择。 除此之外,OpenLayers实现访问地理空间数据的方法都符合行业标准。 OpenLayers 支持Open GIS 协会制定的WMS(Web Mapping Service)和WFS(Web Feature Service)等网络服务规范,可以通过远程服务的方式, 将以OGC 服务形式发布的地图数据加载到基于浏览器的OpenLayers 客户端中进行显示。 OpenLayers采用面向对象方式开发,并使用来自 Prototype.js 和 Rico 中的一些组件。

Cesium

基于 WebGL 的前端3D JavaScript 类库。 Cesium在2016年3月份左右推出3D Tiles数据规范,在glTF基础上提供了LOD能力, 位就是Web环境下海量三维模型数据。