GIS开篇

一、项目背景

本人所在项目主打无线电数据分析及web端可视化展示,公司现有产品采用arcgis for js在浏览器实时绘图,主要表现形式为网格、热力图及轨迹图等。无线电数据采集量巨大,原有产品数据已在后端做过预先清洗处理压缩,一个市级一天数据量均在十万个点左右,原有客户端绘图模式导致浏览器压力很大,用户体验也及其不好。按照项目组安排,本人承接地图数据展示部分优化选型及开发工作,第一版本为期两月。

本人主职为java开发,由于创业公司性质,慢慢卷的什么都会点,对于GIS也是第一次接触(刚开始接到任务都不知道这个任务要搜索GIS方面的东西)。相对于曾经快速填鸭式CV经历,GIS圈由于参考文章少,难啃了很多,所以决定一边啃一边记录整理一下。

二、研究思路

本次优化升级研究,主要需解决web端加载绘制数据图层压力,第一版要求千万个点级页面响应友好,不卡顿。为减少客户端压力,首先想到的就是在服务端完成图片绘制及做好对应的缓存,对客户端来说,不管多少数据量,最后加载的都是一张图片。本着站在巨人肩膀的原则,从图片、地图缓存服务器开始搜索各种成熟组件,最终整理出GIS相关的一些组件与关系(入门级理解,后续了解深入有不当的地方会继续补充)


GIS相关组件

巨人的肩膀就是高,简单梳理后,了解到地图服务器就是我需要的图片、地图缓存服务。对于地图服务数据源选择,由于老项目数据已经存储在关系型数据库中,并且JDBC连接及sql语言都比较熟悉,所以就不考虑转换为其它矢量数据源,重点研究关系型数据库+空间数据引擎模式为地图服务器提供数据。

三、GIS开发相关组件

1.地图服务器

1.1arcgis server

ArcServer是ESRI公司推出的一个基于服务器的ArcGIS工具,主要特点如下:

(1)不开源,且费用很贵----就这一条就不考虑,用不起

(2)ArcServer中的几乎涵盖所有GIS服务器应该具备的功能

(3)ArcServer相对于其他开源的GIS服务器它的访问速度是比较快的

(4)ArcServer简单、可操作性强,自身具备对应的桌面软件ArcMap

(5)ArcServer比其他一些开源GIS服务器相对来说能更稳定一些

(6)就目前来说ArcGIS的发展已经比较成熟

1.2geoserver

GeoServer是一个遵守OGC开放标准的开源地图服务器,

(1) 用 java 语言编写、标准的 J2EE 框架、基于 servlet和STRUTS 框架、 支持高效的 Spring 框架开发;

(2)且实现了WCS、WMS(网络地图服务)及WFS(网络要素服务)规格,擅长于结合WFS(Web Feature service)规范的属性查询

(3) 支持上百种投影

(4)提供web界面操作发布地图服务

(5)数据源数据变化,地图自动刷新

(6)......还有更多其它功能,还没用到,理解了再继续补充

1.3 mapServer

MapServer 源自美国太空总署(NASA)资助的美国明尼苏达大学(University of Minnesota)ForNet项目,最终衍生为一个WebGIS开源软件,是一个功能强大的跨平台的网络地图服务软件包

(1)使用C++编写,基于CGI脚本实现

(2)遵守OGC制定的WMS、WFS、和GML等一系列规范

(3)Mapserver对WMS(Web Map service)的支持比较geoserver更为高效

(4)提供web界面操作,但控制上体验不是很好

比较项 arcgisServer geoserver mapserver
语言 —— java c++
开源
功能 中等 一般
速度 一般 中等
操作性 中等 一般
稳定 中等 中等
热度(可CV度) 中等 一般

arcgisServer由于不开源直接淘汰,mapserver虽然在wms服务效率上比较快,但wfs支持度不好,数据热更新度不好,并且geoserver使用java开发,还支持spring快捷开发,在两个月出第一版稳定产品的要求下,简直旺我本命。所以第一轮筛选下,主研究geoServer。

(ps:各种专业名词解释准备后续专门整理一篇文章,刚开始研究时被OGC、WMS、WFS、SRID、投影...给折腾的头晕晕的,看一篇文章要另行百度好几次......)

2.数据源

“关系型数据库+空间数据引擎”通常是近年来由GIS厂商研发的一种中间件解决方案。用户将自己的空间数据交给独立于数据库之外的空间数据引擎,由空间数据引擎来组织空间数据在关系型数据库中的存储;当用户需要访问数据的时候,再通知空间数据引擎,有引擎从关系型数据库中取出数据,并转化为客户可以使用的方式。(中间件技术) 因此,关系型数据库仅仅是存放空间数据的容器,而空间数据引擎则是空间数据进出该容器的转换通道。这类系统的典型代表有ESRI的ArcSDE和MapInfo的SpatialWare。其优点是,访问速度快,支持通用的关系数据库管理系统,空间数据按BLOB存取,可跨数据库平台,与特定GIS平台结合紧密,应用灵活。其缺点主要表现为,空间操作和处理无法在数据库内核中实现,数据模型较为复杂,扩展SQL比较困难,不易实现数据共享与互操作。 原文

敲定地图服务器后,数据源的选择依照图层服务器支持来选择。geoserver支持矢量数据源如下:


geoserver矢量数据支持

按照“关系型数据库+空间数据引擎”来选择,选型对比Oracle和PostGIS

Oracle收费,不考虑,所以没做实测数据,并且参考网上实测文章,Oracle 性能<PostGIS,PostGIS妥妥胜出(简单看过前辈们经验分析,矢量数据源中postGIs性能速度甚至>=shapefile,postGIS无论热度还是各类测评都碾压其它项)。

3.客户端

本次开发的产品只考虑web端,所以只考虑web端组件选型

1、OpenLayers

(1)支持的地图来源包括了WMS,GoogleMap,KaMap,MSVirtualEarth

(2)OpenLayers实现了行业标准的地理数据访问方法如OGC的Web Mapping Service(WMS)and Web Feature Service(WFS)协议

(3)OpenLayers可以简单的在任何页面中放入动态的地图

2、arcgis for js

ArcGIS API for JavaScript是由ESRI公司基于JavaScript语言的Dojo框架开发的程序接口,用户可以通过调用接口实现浏览、查询地图等基本操作,也可以通过编写函数实现更加复杂的功能。

ArcGIS API for JavaScript中的类是按照模块组织的,主要包含esri、esri/geometry、esri/renderers、esri/symbols、esri/symbols、esri/dijit、esri/dijit/editing、esri/layers、esri/tasks、esri/toolbars、esri/virtualearth模块

(1)可加载WMS服务、热点图(HeatMap)、Bing地图、OpenStreetMap、GeoRSS、KML数据等

(2)可实现图形绘制、渲染功能等

3、Cesium

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

看到cesium简介,前端3D JavaScript 类库(领导要求,第二版要实现3D效果),仿佛看到了光,虽然旧代码是用arcgis for js写的,但是从某个传说的年代就流传下来的,本人前端也是基本不会,前端选型就按照简介和热度估摸着定一个重点研究,后续结合后台生成的海量数据模拟案例实现,能跑能实现,不卡就不再研究别的啦。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容