以项目谈WebGIS中Web制图的设计和实现

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

1.背景介绍

一般WebGIS项目中,前端展示数据的流程基本是先做数据入库、服务发布、然后前端调用展示。假设用户没有基本的GIS背景,需要将本地的excel或CSV等文件快速在地图上进行展示,此需求该如何解决?

目前市场上针对解决这种需求的产品已陆续出现,比如mapbox的studio,esri的portal,超图的地图慧以及由超图原项目经理离职后创办的地图无忧等产品。这类产品一般都以云服务的概念来包装,提供本地文件的Web制图,相关空间分析,数据的编辑,共享等。这里,我以公司某项目来谈谈个人对此类需求的设计和实现。

2.产品设计

研究市场上成熟的产品会发现二八定律是广泛存在的,比如esri的portal中提供了大量的空间分析功能,但是这些功能能够被用户使用上的概率非常低,仅限于卖产品时客户经理的技能秀状态。抽出普适的功能,定位使用的用户,结合公司的需求,是我最开始设计时的原则。

这里首先定义用户:公司研发(目标-数据整合、快速开发),工程同事(某些需求可独立解决),用户使用(解决用户简单需求)。

根据以上三个原则,提出了这样的产品功能构想:

a.本地文件快速展示(研发、工程、客户)。

b.本地文件制图(研发、工程、客户)。

c.基本空间分析(研发、工程、客户)。

d.数据编辑(研发、工程、客户)。

e.数据共享

针对研发:提供数据层面对接、服务层面对接、前端接口对接。

针对工程:提供服务发布功能。

针对客户:提供前端对分享数据的查看。

f.数据权限

针对工程、客户:可配置数据查看权限。

 

3.产品架构设计

以模块化为核心,首先将地图操作和制图业务进行分裂,构建出两个大模块:

 

在portal中对各功能模块是否能添加进行配置管理:

 

4.本地数据展示的设计和实现

本地数据展示主要针对本地的CSV和本地Excel数据,数据中需要包含坐标字段(X、Y),通过portal添加至地图上进行快速展示:

 

5.Web制图的设计和实现

5.1简单渲染

简单渲染是指用户可以选择渲染的填充色、填充透明度、边框色、边框透明度、以及选择是否用图标(图标可上传选择)展示:

 

5.2分类渲染

分类渲染是指用户可以选中分类的字段,然后对字段对应的不同阈值进行不同渲染展示:

 

6.空间分析的设计和实现

6.1多维分析

多维分析中提供热区展现、聚类分析两种维度,并且各参数可以选择控制:

 

6.2缓冲分析

提供针对上传数据的点、线、面的缓冲分析功能:

 

7.数据管理

7.1数据关键字查询

选中查询字段,输入查询关键字后便可以搜索出数据中符合要求的结果,点击结果面板后可以在地图上定位到该要素: 

 

7.2数据编辑

针对数据提供增加、修改、删除、另存功能,其中另存功能能将修改后的数据导出成本地的CSV文件:

 

8.数据共享

8.1设计

选择用PostGIS来存储上传数据,主要考虑都后期可以使用geoserver直接将上传的数据当做图层进行发布。然后设计了三张表来进行数据的元数据管理,分别是tc_user_upload_data,tc_user_upload_data_field,tc_user_upload_data_style表,这三张表中,第一个是存储上传的数据对应的数据表、样式表、上传人员,第二张表对应的各数据所拥有的字段,第三张表存储的是数据对应的样式文件。最后,每上传一个数据,除了填充这三张元数据表外,还为该数据生成一个数据存储表,表中包含geom字段以ST_Geometry格式来存储,为以后和地理服务器对接。

8.2实现

点击上传按钮,即将数据上传至PG库中:

 

8.3geoserver发布

利用geoserver发布:

 

或者利用公司集成了发布工具的UDIG配图发布:

 

Geoserver中预览:

 

9.权限配置

配置各岗位对服务图层的权限:

 

图层树中对图层浏览:

 

10.扩展设计

a.增加前端以配置样式读取上传数据的接口,为研发前端调用。

b.针对研发特殊需求,提供数据层面对接方案。

c.增加更多扩展GIS功能,比如路径纠正、等值线、热点图等。

d.扩展支持更多的本地文件格式。

e.增加地图底图样式可切换配置界面。将地图底图更换成矢量切图,对矢量切图以YAML格式进行样式配置。

 

 

                                -----欢迎转载,但保留版权,请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/

                                                                           如果您觉得本文确实帮助了您,可以微信扫一扫,进行小额的打赏和鼓励,谢谢 ^_^

                                                                                                                          

 

时间: 2024-08-01 13:42:02

以项目谈WebGIS中Web制图的设计和实现的相关文章

浅谈ASP中Web页面间的数据传递

web|数据|页面 基于Web的动态网页设计必会涉及到页面间的数据传递,文章探讨了ASP设计中常用的Web页面间的数据传递方式,分析各种数据传递方式的使用方法.使用场合及优缺点,其都是设计阶段选择数据传递方式考虑的关键.往往使用动态网页技术制作ASP应用程序时一般至少拥有二个或二个以上的Web页面,这时就得考虑在多个Web页面间传递数据的处理工作.而ASP应用程序的各个页面类似于Windows应用程序的form窗体,Windows应用程序各form间数据传递可以通过定义全局变量等方法来实现.网页

(八)WebGIS中栅格图层的设计

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.    前言 我们在上一章里了解到WebGIS中栅格图层的本质--地图图片.而从之前的第二章到第五章,我们详细的介绍了地图图片的获取原理和方法.所以在设计栅格图层前,我们已经知道了栅格图层中数据是如何获得的,剩下的便是怎样将这个过程用一种符合面向对象的设计原则来进行实现. 2.栅格数据获得的流程 这里我再次将栅格数据获得的流程描述一遍: 首先,得到屏幕范围内的地图

(十二) WebGIS中矢量图层的设计

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 在前几章中我们已经了解了什么是矢量查询.屏幕坐标与地理坐标之前的转换以及要素的设计,有了这些知识,这一章里我们终于可以进行矢量图层的设计了. 在Catalog里创建一个FeatureClass时,我们能够选择是创建点图层或者线图层或者面图层等.所谓点图层,即该图层中的要素只能是点,其他几个图层顾名思义,也是如此.那么在WebGIS中,我们同样也可以按照Arc

(十五)WebGIS中平移功能的设计和实现

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 这一章我们将详细讲解WebGIS工具栏中另一个基础工具--平移工具(Pan).在介绍命令模式时,我们已经知道了此工具为Tool型的. 这个工具主要有如下两个功能: A.当切换到此工具上时,按下鼠标不放,移动鼠标时可以拖动地图. B.当切换到此工具上时,点击鼠标(鼠标不做平移),可以使地图平移,以点击处为中心. 2.设计 2.1 原理 我们已经知道,WebGI

IOS中 浅谈iOS中MVVM的架构设计与团队协作

今天写这篇文章是想达到抛砖引玉的作用,想与大家交流一下思想,相互学习,博文中有不足之处还望大家批评指正.本篇文章的内容沿袭以往博客的风格,也是以干货为主,偶尔扯扯咸蛋(哈哈~不好好工作又开始发表博客啦~). 每日更新关注:http://weibo.com/hanjunqiang  新浪微博 由于本人项目经验有限,关于架构设计方面的东西理解有限,我个人对MVVM的理解主要是借鉴于之前的用过的MVC的Web框架~在学校的时候用过ThinkPHP框架,和SSH框架,都是MVC的架构模式,今天MVVM与

网站设计分析:浅谈产品中的引导式设计

想象一下一些人初次去陌生城市旅游,有的人会因为省心.对陌生的不熟悉从而选择会报名团的方式来解决出行问题.还有另外一些人会选择自驾游,但也需要先准备好相关攻略,或通过当地亲朋好友的帮助解决出行的问题.殊不知我们在报团或者咨询的的方式来增加我们对陌生城市了解,这个过程我们称之为引导. 引导式设计在网站的产品设计中的重要程度不言而喻,优秀的引导设计能帮助解决用户实际的问题,使用户尽快完成自己的目标(报团.查攻略).同时也可以满足公司的商业目标.错误的引导设计能让用户在网站中迷失,网站的跳出率居高不下.

设计源自生活—谈生活中的用户体验设计

用户体验设计,来源自用户关怀,目的是产品和用户双赢.用户,则是广大真实存在的人们,那么来源自生活的用户体验启发,对于虚拟产品的用户体验设计,具有极大的借鉴意义.以下就是笔者在现实生活中发现的故事,并总结出了许多用户体验设计的原则. 1 坦途与上下楼 自从搬了新的办公区,倒咖啡就成了一件麻烦的事. 我们的办公区身处二楼,在二楼的另外一边有一个咖啡机,而在一楼正下方也有一个咖啡机. 最初不熟悉的时候,常常要在两个之间抉择,究竟去哪儿倒咖啡. 一楼的位置更近,直上直下:而前往二楼的咖啡机,则需要走相对

(十四)WebGIS中地图放大缩小的设计和实现

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.背景 在上一章中,我们给出了整个工具栏设计的核心,使用命令模式,并设计了具体工具类所继承的基类--Command类.从这一章开始我们便正式进入了具体工具类的设计和实现. 放大和缩小工具是最基础的工具之一,其操作分为三种: a.点击地图,进行放大缩小 b.拉框,进行放大缩小 c.滚轮调控放大缩小 针对这三种操作方式,我们进行了不同的代码逻辑设计. 2.分析 a.滚轮

(六)WebGIS中地图瓦片在Canvas上的拼接显示原理

文章版权由作者李晓晖和博客园共有,若转载请于明显处标明出处:http://www.cnblogs.com/naaoveGIS/. 1.前言 在之前的五个章节中,我们在第一章节里介绍了WebGIS的基本框架和技术,第二章节里介绍了什么是瓦片行列号以及计算它的原因,第三章节里介绍了如何通过地理范围计算出这个范围内瓦片的行列号,第四和第五章节里介绍了在得到瓦片行列号后如何获得离线和在线地图的URL,这个章节里,我们将介绍在通过URL得到瓦片后,如何将其显示在浏览器相对应的地方,拼接出整块地图. 2.左