海量图层管理的新希望——ArcGIS Server 动态图层服务

1      众里寻他千百度

“海量数据的发布与共享一直是GIS应用系统建设中的难题,尤其是当数据还在不断增加的时候……”,像是被针扎了般,小崔猛然一惊。然 后他全神贯注,紧紧盯着大屏幕,生怕错过了任何细节。当看到台上的工程师将65个图层导入数据库中,随后在 客户端立即就可以看到最新的数据时,小崔惊讶地几乎就要喊出来!

小崔是神马浮云科技有限公司的一名项目经理,主要负责 GIS项目的设计与实施。最近他被一个项目搞得焦头烂额,老板看在眼里,急在心里,正好今天Esri用户大会开幕,于是让小崔过来参会,了解了解新技术,会会老朋友,放松放松心情。

大会结束后,小崔和几个老朋友一起吃了饭,然后各自回 家。“刚才所见的演示,和最近的项目情景何其相似啊!”最近一段时间,小崔费尽思量,尝试了各种方案,总难找到两全其美的 办法。今天演示这个技术,或许就是解决问题的关键。“动态图层服务,一个神奇的服务!”小崔不自觉地模仿了一句,说完自己 也乐了,“不管神奇不神奇,关键要能解决问题!”小崔最后在心里总结道。

明后两天是技术讲座和用户体验区开放,小崔想着今晚回 去先把问题好好梳理梳理,明天再过来和Esri的工程师们好好交流交流。打定主意后,小崔加快脚步,在北京初 秋灯火阑珊的夜色下,很快便消失在车水马龙中。

 2.山穷水复疑无路

说起小崔这项目,还是公司的一个重点项目,客户单位是 一家全国知名的能源巨头,有下属矿业公司18个,分布在全国范围内。这个项目要做的就是管理这些矿业公司的 作业信息,并且将矿图发布出来供各地公司的业务人员使用。这18个矿业公司一共有生产矿井82个,煤层325个,每个煤层包括4张专题图,每个专题图都有自己的 业务图层和背景图层。目前系统是根据矿图范围和地理分布的实际情况,以煤层为最小的组织单位,通过发布服务来显示矿图。这样算来,一 共需要发布325个服务!考虑到全国18个矿业公司并发访问是很正常的事,为了确 保服务运行的稳定性,小崔没有采用服务共享进程的模式,而是采用了服务独占进程的模式,这样一来,服务器上光是跑这些服务,就要开启 325+3=328个进程!小崔想想就发愁,于是想要采用集群的方式,可是老板告诉他,目前添加硬件的方案,不太 现实,还是从系统架构和开发技术上多想想办法吧。

其实小崔已经对系统设计进行过很大改进了,在他之前的 那位项目经理,设计的是每个专题图发布一个服务,一共需要325*4=1300个服务!小崔接手后首先就把同一个煤 层的4个专题图合并到一个服务中,通过图层组去控制,虽然增加了代码开发的工作量,但是毕竟将服务数量减 少为原来的四分之一了!也正是看到小崔的这种改进,老板才坚信,小崔一定还有更多办法……

小崔也确实想了很多办法,也都进行了尝试,包括服务需 要的时候再启动;通过多个虚拟机来做集群;对不同煤层、不同矿井的空间数据进行合并……这些方法都能解决某方面的问题, 但是又都或多或少会引起新的问题,小崔那个愁哇!

3. 柳暗花明又一村

第二天一大早,小崔就赶到了北京国际会议中心,按照讲 座日程,先去听了ArcGIS 10.1的系列讲座。在听完讲座之后,小崔和工程师做了交流,打听到昨天演示“ 动态图层服务”的工程师在用户体验区值守,于是飞奔过去,找到了那位工程师(H工)。

小崔简单的介绍了项目的背景和目前遇到的问题,希望 H工能够帮忙想想办法。H工告诉小崔,通过ArcGIS Server 10.1推出的动态图层服务,可以很好地解决他遇到的问题。

“动态图层服务正是用于海量图层发布与共享,特 别适用于图层数量巨大,并且数量还在不断增加的情况。”H工介绍道。

“对对对,我们目前遇到的情况就是图层数量特别 多,都需要发布出来,这个动态图层服务是10.1中一个新的服务类型吗?”小崔问道。

“不是,动态图层服务,确切的说,是ArcGIS Server地图服务的动态图层技术,他是地图服务的一个新特性。”H工答道 。

“那他是怎么知道我的图层数据存放在什么地方呢 ?昨天看你演示的是文件夹,SDE也支持吗?怎么进行设置呢?是配置文件,还是在那儿设置?麻烦吗?” 小崔连续发问。

“是通过工作空间来管理相关的图层数据,工作空 间可以是Shapefile或栅格数据文件夹,也可以是File Geodatabase或者ArcSDE。”H工边说边打开昨天演示的DEMO,现场给小 崔演示了起来。

“你看,这里只需要勾选一个复选框,就表示对该 服务启用动态图层技术了。”H工指着设置的地方给小崔看。

 .

 图 1 服务的动态图层功能启用

  “然后你就可以设置要关联的工作空间,可以设置 多个哦。”H工继续给小崔演示着。

.

图 2 管理工作空间
.

图 3 添加工作空间,支持4种类型

“服务发布之后,通过ArcGIS ServerREST目录,就可以看到该服务的动态图层相关特性了。”H工打开了浏览器,输入了ArcGIS ServerREST服务目录,找到了刚才发布的服务 。“这里多出了动态图层的属性!”小崔一眼就发现了与之前服务属性的不同之处。

.

图 4 服务属性增加了动态图层内容

  “看来动态图层是地图服务一个子资源啊,那么他 支持哪些操作呢?”小崔理解得很快,开始思考更深入的问题。“支持查询和动态渲染,打开 REST SDK看看吧!” H工找到 REST SDK所在的目录,打开帮助文档,找到动 态图层,让小崔自己验证。


.

 图 5 动态图层支持查询和动态渲染,父资源是地图服务,子资源则是要素

“哦,动态图层还支持Feature资源呀,太好了,动态图层能做的 事情很多!”小崔已经开始思考如何在项目中应用这些最新技术了。“你来操作试试吧,就是昨天主题大会上演示那个DEMO。”H工打开DEMO,请小崔自己体验。小崔试着发 了一个服务,指定了两个Shapefile工作空间。服务中不固定发布图层,都通过动态加载来实现。

.

图 6 China400W服务中没有图层

 小崔试了一下动态加载的效果,首先获取到服务对应的工作空间及其中的图层,然后加载了一个图层。 

.

图 7 获取服务托管的工作空间及其中的图层
.

图 8 动态加载图层

然后做了动态渲染,生产了一个GDP专题图。 

.

图 9 动态渲染

随后小崔模拟了一下空间数据入库,将4个图层导入到Beijing工作空间中。

.

图 10 空间数据入库前的Beijing工作空间只有一个图层( 客户端查看)

 .

 图 11空间数据入库前的Beijing工作空间只有一个图层(服务器 端查看)

.

图 12空间数据入库后的Beijing工作空间有66个图层(服务器端查看)

最新入库的数据,立刻就能在客户端看到!整个过程没有发布新的服务, 也没有重新启动服务,更没有修改程序代码,甚至都没有刷新网页!

.

图 13空间数据入库后的Beijing工作空间有66个图层(客户端查看)


小崔又接着试了动态加载和动态渲染,发现刚入库的图层 和刚才一样可以进行动态加载和动态渲染。“这个技术真是好!”小崔亲自体验了一把,对动态图层服务赞不绝口。“我们 这项目用这个技术太合适了,哈哈!”

4.   一个神奇的服务

最后,H工又把刚才给小崔 介绍的动态图层服务相关的知识,做了总结:

  • 动态图层服务并不是一种全新的服务,而是ArcGIS Server地图服务的一个新特性;
  • 动态图层服务主要用于海量图层发布与共享,特别适 用于图层数量巨大,并且数量还在不断增加的情况;
  • 动态图层服务通过工作空间来管理相关的图层数据, 工作空间可以是Shapefile文件夹、栅格文件夹,也可以是File Geodatabase或者 ArcSDE
  • 动态图层服务支持的图层包括矢量图层和栅格图层;
  • 动态图层服务在发布的时候,可以仅发布一个图层, 其他图层可以动态地从工作空间中加载;
  • 动态图层服务还支持对图层进行动态渲染,用户可以 根据自己的喜好创建不同的专题地图。

小崔已经领会了动态图层服务的要点,忍不住感叹: “这个真是一个神奇的服务啊!”说完两人相视一笑……

感谢yelloweast童鞋的辛勤撰写,把技术文章写成这样,有才银!

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值