V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
gislite
V2EX  ›  分享发现

[转]基于 WebGIS 技术的在线地图共享网站 Maplet 开发阶段小结

  •  
  •   gislite · 2016-01-27 22:56:22 +08:00 · 954 次点击
    这是一个创建于 3014 天前的主题,其中的信息可能已经有所发展或是发生改变。

    Maplet 在线地图共享网站(http://www.maplet.org),是一个使用了 Web 、 WebGIS 技术开发的信息共享、科普、教育网站。最近几天,开发工作大概完成,有一些文字,写一下记录一下,防止以后忘记。

    本科时候的专业是地理科学,研究生阶段学的是地图学与地理信息系统,工作之后在单位的遥感与地理信息中心,也大都与地理空间业务相关。个人对技术方面比较感兴趣,尤其是开源 GIS 方面,现在算起来也有了十年的经验,现在还在做一些 OSGeo 中国中心的工作。科研工作大抵是无所建树,技术方面可能还有点特长吧。

    因为工作关系,这几年也是收集了许多地理数据、扫描的地图图件等。长久以来一直在考虑一个问题,如何把手头的资料转换成更方便实用的形式,如何更方便的提供给别人使用。

    从 2014 年开始,因为做地理科学数据共享方面的一些工作,开始接触到 Web 开发。因手头维护着几个网站,便开发了一个 CMS ( TorCMS, 源代码托管于 GitHub, https://github.com/bukun/TorCMS ),用于网站的管理。原来网站都是用 WordPress 做的,之所以用 Python 自行写了一个 CMS ,主要是平时用 PHP 的时间比较少,不想在这个语言身上多花工夫了。另外,因为个人兴趣,做了一个在线计算的网站(云算笔记,http://www.yunsuan.org,想做些云计算实践,做还没做到,起了这样一下不伦不类的名字)。现在想起来,这些应该是在做技术铺垫了,云算笔记网站中,也颇有一些地学计算相关的(http://www.yunsuan.org/post/32000.html ),有一些也用到 WebGIS 技术,但当时并没有这样的意识。云算笔记的开发量比较大,断断续续做到了 2015 年初。某一天,我实然想,我把在线计算的网站程序来做在线地图发布是否可行呢? 于是马上就动手实验,这个想法的实现其实只用了一个晚上。当然现在以 Maplet 网站程序为主,代码的名称都改了,也放在了 GitHub ,https://github.com/bukun/maplet

    再往后来,是云算笔记网站的阶段性收尾工作与 Maplet 网站相关工作开展,这些开发维护工作与实际的课题工作结合到了一起。这中间比较关键的,并不是网站程序的开发(应该说云算笔记网站对程序要求更高一点),而是地图服务的应用部署。不过有利的一点是我在这方面的经验反而更多一些,从数据处理到地图发布,把原来的工作系统地整合到一起,做成了地图纠正、配置文件生成、远程发布的一整套方案,后期的添加数据等,我介入的其实并不多了。为了简化地图的发布,采用了 MapServer 作为地图服务器,使用了 MapProxy 作为地图切片的程序。网站的前端,则选择了 Leaflet 。基本的技术选型就是这个样子,当然,这些选型也是在做的过程中反复比较确定下来的。

    作为一个个人项目, Maplet 网站开始也并没有太高的需求。只是想将扫描的地图资料发布到网络上,可以在线浏览、查看,这是基本的 WebGIS 的要求,在线叠加的功能倒是最开始就想到了,这点可能是多年做 GIS 形成的惯性思维吧,而且实现起来也非常简单。其他方面,可能就是我想发布的地图可能会有些多,以后可能会逐渐增加。这样,以地图为中心的发布与管理模式,就初步建立起来了。另外,作为 Web 应用,网站的推广优化也是一开始就考虑了的,所以想做的,基本就是一个地图内容管理系统了。

    开发语言选择了 Python3 ,开发的时候用的 3.4 ,现在已经是 3.5 了。也为也没用到什么特别的功能,所以迁移起来也没有什么难度。最初接触到 Python 是在 ArcGIS 下写数据处理脚本,后来用 Python 结合开源 GIS 的一些工具写数据处理脚本。这方面的经验其实更多一些,也一直在写一本书《 Python 与开源 GIS 》,不过一直工作兴趣很容易转移,导致迟迟没有完成。用 Python 写 Web 程序其实是相当偶然的,作为 GIS 专业的从业人员,做网站开发有点不务正业了。不过感谢当时能有暂时脱离工作业务的一段时间,可以接触到相对新一点的领域。

    glchaos
        1
    glchaos  
       2016-01-28 09:35:54 +08:00
    佩服佩服!膜拜下!
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5302 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 03:48 · PVG 11:48 · LAX 20:48 · JFK 23:48
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.