利用PIE实现全球云分布图的效果
1、问题背景:
最近项目中获得了一份全球云分布图,客户要求把云显示在全球地图上,出现云的效果,如下图所示:

【全球云分布图】

【世界地图云示意图】
2、解决思路
咨询专业的业务人员,建议我测试下试试地图透明通道,地图底色设置为白色,设置透明通道来完成这个效果,赶紧来试,先用PIE的波段合成功能,成功的将3波段的世界地图.tiff和全球的云分布图合并成一个四波段的带云分布的世界地图,赶紧设置RGBA波段,果然出现了想要的效果。

【波段合成】

【设置渲染方式】
3、实现代码
下一步就是代码实现这个功能了,首先调用波段合成算法,再设置RGBA渲染,大功告成了。
// 波段组合算法调用
PIE.CommonAlgo.BandCombination_Exchange_Info info = new PIE.CommonAlgo.BandCombination_Exchange_Info(); string path = @"D:\Data\World.tif";
IRasterDataset rDataset = DatasetFactory.OpenDataset(path, OpenMode.ReadOnly) as IRasterDataset; string path1 = @"D:\Data\CC_2018082615.tif";
IRasterDataset rDataset1 = DatasetFactory.OpenDataset(path1, OpenMode.ReadOnly) as IRasterDataset; info.m_vecFileptr = new List<IRasterDataset> { rDataset, rDataset1 }; List<int> list1 = new List<int> { , , };
List<int> list2 = new List<int> { };
info.bands = new List<List<int>> { list1, list2 };
info.tstrfile = @"D:\Data\CloudPic.tif";
info.m_strFileTypeCode = "GTiff"; PIE.CommonAlgo.Interestregion interestregion = new PIE.CommonAlgo.Interestregion();
interestregion.SetRegion(, , rDataset.GetRasterYSize(), rDataset.GetRasterXSize());
info.regioninfo = new List<PIE.CommonAlgo.Interestregion> { interestregion, interestregion };
info.m_iOutRangeCrossType = ; PIE.SystemAlgo.ISystemAlgo algo = PIE.SystemAlgo.AlgoFactory.Instance().CreateAlgo("PIE.CommonAlgo.dll", "PIE.CommonAlgo.BandCombinationAlgo");
if (algo == null) return; PIE.SystemAlgo.ISystemAlgoEvents algoEvents = algo as PIE.SystemAlgo.ISystemAlgoEvents;
algo.Name = "波段合成";
algo.Params = info;
bool result = PIE.SystemAlgo.AlgoFactory.Instance().ExecuteAlgo(algo); ILayer layer = PIE.Carto.LayerFactory.CreateDefaultLayer(@"D:\Data\CloudPic.tif");
IRasterRGBRender rRGBRender = new RasterRGBRender();
rRGBRender.SetBandIndices(, , );
rRGBRender.UseAlphaBand = true;
rRGBRender.AlphaBandIndex = ; //设置rasterRender
IRasterRender rasterRender = rRGBRender as IRasterRender;
IRasterLayer rasterLayer = layer as IRasterLayer;
rasterLayer.Render = rasterRender; m_HookHelper.ActiveView.FocusMap.AddLayer(layer); m_HookHelper.ActiveView.PartialRefresh(ViewDrawPhaseType.ViewAll);
利用PIE实现全球云分布图的效果的更多相关文章
- [转帖]AWS第一,「3A格局」稳固,活跃IP是如何被全球云厂商瓜分的?
AWS第一,「3A格局」稳固,活跃IP是如何被全球云厂商瓜分的? 本文作者:王刚 2019-02-24 10:42 https://www.leiphone.com/news/201902/qsz3c ...
- Gartner:阿里云位列全球云数据库市场份额前三,数据库未来需上云
近日,国际权威研究机构Gartner发布 <The Future of the Database Management System (DBMS) Market Is Cloud>报告,鲜 ...
- 利用VisualVM监测Azure云服务中的Java应用
在做Java开发的时候,我们需要在上线之前对程序进行压力测试,对程序的性能进行全面的监控,了解JVM的CPU,内存,GC,classes,线程等等信息,或者在程序上线运行的过程当中以便于诊断问题或者对 ...
- 利用 Windows Azure 实现“云优先”
根据 IDC 的调查,云计算无疑为我们的合作伙伴提供了巨大的机会,预计到 2016 年,全球企业将在公共云服务上耗资 980 亿美元.在今天的休斯敦全球合作伙伴大会上,我们非常高兴能与合作伙伴共同寻求 ...
- 利用tween.js算法生成缓动效果
在讲tween类之前,不得不提的是贝塞尔曲线了.首先,贝塞尔曲线是指依据四个位置任意的点坐标绘制出的一条光滑曲线.它在作图工具或动画中中运用得比较多,例如PS中的钢笔工具,firework中的画笔等等 ...
- iOS基本动画/关键帧动画/利用缓动函数实现物理动画效果
先说下基本动画部分 基本动画部分比较简单, 但能实现的动画效果也很局限 使用方法大致为: #1. 创建原始UI或者画面 #2. 创建CABasicAnimation实例, 并设置keypart/dur ...
- CSS3利用一个div实现内圆角边框效果
*首先要清楚的是,box-shadow的形状会随着border-radius变化.下面的例子可以证明: <!doctype html> <html lang="en&quo ...
- requests利用selenium,代理Ip,云打码,验证码抠图操作 爬取搜狗微信公众号内容
爬取思路,爬取搜狗微信公众号内容,爬取第一层url时请求太快出现验证码,我这里用的蘑菇云代理,并在程序中我判断什么情况下是否+代理,做到合理运用代理ip.爬取第二层url时验证码出现次数更严重(和第一 ...
- 利用InformationSchema与阿里云交易和账单管理API实现MaxCompute费用对账分摊统计
利用MaxCompute InformationSchema与阿里云交易和账单管理API 实现MaxCompute费用对账分摊统计 一.需求场景分析 很多的企业用户选择MaxCompute按量付费模式 ...
随机推荐
- 关于ajax学习
一.Ajax是XMLHttpRequest对象,javascript,XML,CSS,DOM等多种技术的组合 1.XML :(可扩展的标记语言) 提供了用于描述结构化数据的格式,适用于不同应用间的数据 ...
- Java switch函数
switch()函数中能放置的值为:byte,short,char,int,string,enum类型或者byte,short,char,int的包装类,其中,string类型是java7(含)之后才 ...
- CentOS7 安装 Adobe Flash 看网络视频
登录 Adobe 网站,找到 Adobe Flash Player 下载页,进入后网页自动识别 Linux 环境,手动选择版本,选择 YUM 方式,自动下载一个 rpm 文件 定位到下载目录,通常默认 ...
- Mac下快速新建txt文件
1.打开终端,定位到桌面 cd desktop 2.输入 vi test.txt 此时,一个txt文件就会建立在桌面上,操作vi时的提示:按[i]为输入内容,编辑好之后按[esc]键,然后输入[:wq ...
- MIME类型是什么?包含哪些类型?
摘自:http://www.tuidc.com/idczixun/newsx/newsidc/3479.html 问:MIME类型是什么? 答:MIME(Multipurpose Interne ...
- javascript中操作元素属性
1. setAttribute():设置属性的值: getAttribute():得到属性的值: removeAttribute():移除属性: 2.offsetWidth:offsetWidth = ...
- HelloStruts2
第一个struts2项目: 前言 假 如 你 的 人 生 有 理 想,那 么 就 一 定 要 去 追,不 管 你 现 在 的 理 想 在 别 人 看 来是 多 么 的 可 笑 , 你 也 不 用 在 ...
- 关于clear与清除浮动
今天看bootstrap突然看到了 .container:after { clear: both; } 好像对clear的用法有点模糊,于是于是又研究一下用法. 上面搜资料总会搜到张鑫旭老师的相关文章 ...
- PHP之string之ord()函数使用
ord (PHP 4, PHP 5, PHP 7) ord - Return ASCII value of character ord - 返回字符的 ASCII 码值 Description int ...
- 通过开机广播(broadcast)通知应用
1. 概念 开机的时候,系统会发送一则广播,所有有标记的应用(通过广播接收者)都会获取得到,然后可以通过广播接收者去处理一些事情,比如启动该应用,或者处理数据: 代码:https://github.c ...