利用OpenScales+MapServer+PostGIS快速构建GIS应用

随着越来越多智慧城市项目的落地实施,基于 GIS 的应用程序展现出越来越广泛的应用场景,例如大多数行业都需要对真实世界中的现有资源进行可视化的实时监控、分析、操作从而提高效率,使得利益最大化;再比如基于位置的服务也越来越在公众中普及,如此等等。正因为有着如此广泛的应用场景,如何经济、快速的搭建一个开发环境,并依托此环境构建各式各样的 GIS 应用就成了一个值得关注的话题。

本文中,作者总结了在实际项目中如何快速利用开源软件构建 GIS 开发环境的实践方法和技巧,以及在搭建和使用 GIS 开发环境中所遇到的问题的解决办法,并通过一个示例将这些经验分享给需要开发 GIS 应用程序的开发人员。

通过本文,读者可以了解到 GIS 应用程序的体系结构,并能根据自身项目的特点确定所需的开源 GIS 软件,且能够快速搭建一套 GIS 开发环境来构建 GIS 应用程序。

GIS 体系结构

一个基本的 GIS 体系结构可以按层次在逻辑上进行抽象,如下图所示,主要包括以下四个部分:

客户端 - 这里所说的客户端是多样化的,可以是 Web 客户端,移动设备或者是通过 HTTP 连接到 Internet 服务或连接到 GIS Server 的桌面应用程序。 Web 服务器 – Web 服务器包含 Web 应用的部署,以及 Web 服务,它们均使用 GIS Server 上的服务资源。 GIS 服务器 – GIS 服务器主要是提供了地理信息可视化、空间数据管理及分析等一系列服务 GIS 渲染引擎– GIS 渲染引擎能够将地图相关数据可视化,并且提供给用户可交互的平台。 空间数据存储库 – 空间数据存储库可以是不同的数据形式,包括空间数据库、矢量数据文件和光栅数据文件。

图 1. GIS 体系结构图

上图所列举的体系结构是一个标准的三层结构,包括了用户交互层、中间层(包括 Web 服务器和 GIS 服务器)以及数据层。

开源软件的比较和选择

在软件世界里,开源无所不在。开源 GIS 软件目前已经形成了一个比较齐全的产品线,打开 FreeGIS[2] 的网站,我们可以找到各具特色的 GIS 软件,从中可以找到很好的商用 GIS 软件的替代品。

针对不同的层次,通过比较常用开源 GIS 软件的用途和优势,并且结合自身的需求,选择如下的 GIS 开源软件。

渲染引擎 OpenScales

提到 GIS 的渲染引擎,很多开发人员首先想到的可能是 OpenLayer 这款著名的使用 JavaScript 的开源 GIS 前端,但是,从技术上来说,基于 Flex 的前台地图框架也有着很大的应用空间,所以我们选择的是一款基于 ActionScript3 和 Flex 的开源 GIS 前端产品 OpenScales。它是一个优秀的前台地图框架,提供了相对完善的功能,主要包括:

能够支持各种标准的地图服务,比如 WMS、WFS 等; 能够快速描绘矢量数据,支持的矢量数据格式有:点、线、面、多点、多线等,这一功能可以用来支持地图编辑功能,后面章节会介绍我们是如何实现地图的编辑功能; 提供一系列内置的地图控件,常用的有地图缩放、拖拽、比例标尺等; 支持多平台,由于 OpenScales 是基于
FlashPlayer 的,因此 OpenScales 可以运行在各个浏览器,桌面程序乃至移动设备上。

时间: 2024-10-15 09:05:50

利用OpenScales+MapServer+PostGIS快速构建GIS应用的相关文章

利用JMail组件快速构建邮件程序(下)

上文<利用JMail组件快速构建邮件程序(上)>中介绍了邮件的发送,本文将介绍邮件的接收过程,示例代码运行效果图如下: 三.邮件接收篇 3.1 利用IPOP3接收邮件 接收邮件时用到的接口是IPOP3, 首先连接上邮件服务器,从Messages中得到邮件信息集合,然后就可以通过遍历集合取得每条Message中的具体内容. 请看如下代码: jmail::IPOP3Ptr pPOP3("JMail.POP3"); // 非必须,设置超时时间为60秒,默认为120秒 pPOP3-

利用React-router+Webpack快速构建react程序_javascript技巧

本文主要介绍的是使用React-router和Webpack如何快速构建一个react程序,下面话不多说,感兴趣的可以一起学习学习. 初始化项目 我们先创建个空文件夹,然后初始化 package.json ,填写一些基本信息. $ npm init 接下来我们开始安装依赖项,我的 package.json 的依赖项如下 "devDependencies": { "babel": "^5.5.6", "babel-core":

Serv-U :快速构建功能强大的FTP 服务器(转自e-book)

serv-u|服务器 Serv-U :快速构建功能强大的FTP 服务器 Internet 的迅速发展为人们提供的前所未有的信息资源,越来越多的人希望在享受Internet 带来的全新的体验的时候,能够拥有自己的网上家园.在当今流行的Internet 应用中,要数WWW 和 FTP 文件传输最为普及了.本文将结合Serv-U 这一功能强大,界面友好,易学易用的FTP 服务器端软件,详细的介绍如何在最短的时间内建立起一个完备的FTP 服务器.除了具体的安装和配置说明外,文中还将涉及一些使用FTP 所

Serv-U :快速构建功能强大的FTP 服务器

Serv-U :快速构建功能强大的FTP 服务器 Internet 的迅速发展为人们提供的前所未有的信息资源,越来越多的人希望在享受Internet 带来的全新的体验的时候,能够拥有自己的网上家园.在当今流行的Internet 应用中,要数WWW 和 FTP 文件传输最为普及了.本文将结合Serv-U 这一功能强大,界面友好,易学易用的FTP 服务器端软件,详细的介绍如何在最短的时间内建立起一个完备的FTP 服务器.除了具体的安装和配置说明外,文中还将涉及一些使用FTP 所必须了解的相关知识,希

运维前线:一线运维专家的运维方法、技巧与实践2.5 使用Django快速构建CMDB系统

2.5 使用Django快速构建CMDB系统 2.5.1 Django介绍 Django是一个免费的.开源的Web框架,由Python语言编写,由于其是在一个快节奏的新闻编译室环境中开发出来的,因此它的设计目的是让普通开发者的工作变得简单.Django遵循模型-视图-控制器(MVC)框架模式,目前由一个非盈利的独立组织的软件基金会(DSF)维持. Django鼓励快速开发和干净实用的设计.Django可以更容易更快速地构建更好的Web应用程序.它是由经验丰富的开发人员来创建的,省去了Web开发的

如何快速构建一项新的云服务?

Azure的管理门户为客户提供了构建和部署云服务的两种方法:"快速构建"(Quick Create)与"自定义构建"(Custom Create). 本文介绍了如何使用快速构建方法构建一项新的云服务,然后使用上传(Update)功能,在Azure中上传和部署云服务包.如果你使用这种方法,Azure管理门户提供了方便的链接,以满足你的所有要求.如果你在构建云服务时准备部署云服务,可以使用"自定义构建",同时执行这两项操作. 注意:如果你打算从Win

快速构建Windows 8风格应用31-构建磁贴

原文:快速构建Windows 8风格应用31-构建磁贴 引言 磁贴是吸引用户经常使用应用重要手段之一.我们可将应用程序内较好的内容使用磁贴进行展示. 另外应用程序磁贴是应用程序中的核心部分,而且很可能也是用户最常见到的部分,因此利用动态磁贴来吸引用户经常使用我们的应用程序! 本篇博文主要介绍如何创建基本磁贴(也就是默认磁贴)以及如何使用本地通知更新磁贴. 一.创建基本磁贴 基本磁贴也可以叫做默认磁贴.通常我们点击基本磁贴来启动或者切换应用. 我们可以在应用程序清单文件中设置默认的静态磁贴,并且该

快速构建符合自身业务需求的统一管理平台

问题描述 现状目前,政府机关或企业内的信息化建设,均存在如下需求:(1)想自行开发业务系统,正寻求一种可以快速构建业务系统的WEB开发平台.用户具有一定的开发能力,而且熟悉自身业务需求,如果自行开发业务系统,不但可以开发出符合自身需求的业务系统,还可节约大量的开发费用.但是要从底层框架做起,有一定的技术难度,特别是对于目前流行的基于J2EE体系的WEB应用,如果按传统方式开发,难度相当大,而且成本极高.因此急需一种基于WEB的快速开发平台,基本无需编码,即可以快速构建业务系统.(2)报表需求不断

快速构建一个简单的个人框架系列(2)--FastObject架构(改进)

架构也谈不上,就是一个简单的几个类. 目前FastObject功能还很小,尤其是多表查询和数据库兼容还存在一定的问题. 我们先把这两个问题搁这儿: 1.数据库某些地方的兼容 2.多表查询 为了这两个问题,我对先前的结构做了稍微的修改,后面慢慢就会感觉到. 人活一口气,树活一张皮.虽然上篇文章<快速构建一个简单的个人框架系列(1)--FastObject介绍> 贴出后,经过大家的指点,凸显出太大的不足,但是已经写出来了,就是只剩一口气我也要把它写完,写 不完我也要玩着写,在此感谢提建议的朋友们,