利用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按量付费模式 ...
随机推荐
- 不依赖JQuery的入门Ajax代码
今天看了head first ajax这本书里ajax的实例,讲的很好,这本书觉着很不错,推荐下. Ajax (Asynchronous Javascript and XML)即异步Javascrip ...
- 《python灰帽子》学习笔记:写一个windos 调试器(一)
一.开发内容介绍 为了对一个进程进行调试,你首先必须用一些方法把调试器和进程连接起来.所以, 我们的调试器要不然就是装载一个可执行程序然后运行它, 要不然就是动态的附加到一个运行的进程.Windows ...
- 【Qt开发】常用控件--QLineEdit
QLineEdit是单行文本编辑控件.比如用户名,密码等输入框可以使用该控件. 所属头文件<QLineEdit> 常用方法 1.void setText(const QString &am ...
- python笔记01-----列表操作
在python中列表用 '[]' 表示 列表的查询操作 列表的切片 names = ["a","b","c"] #定 ...
- [PY3]——Python的函数
Python函数总结图 1.调用 1.1 如何调用 1.1.1 函数名(传参) # 函数使用函数名来调用,函数名后紧跟一对小括号,小括号里传入函数定义时要求的参数 add(9,9) #9+9=18 ...
- 【转】MVC Model建模及Entity Framework Power Tool使用
MVC如使用Code-First代码优先约定,先建实体类,再根据实体类创建数据库. 在创建实体类后,新建一个数据上下文类,如下: publicclassMusicStoreDB : DbContext ...
- 相片Exif协议
今天看他们安卓在做项目遇到一个要让旋转拍摄的相片竖屏方向显示 ,网上搜了下找到了安卓的一个博客,看了下想着既然安卓有ios也应该会有,果然不出所料,确实是有.其实他们都是遵循Exif协议,百度百科也有 ...
- MVC缓存(二)
依赖缓存: 1.监视特定的数据库表,当数据库表里数据发生变化时,自动删除缓存项,并向Cache中添加新的项. using System; using System.Collections.Generi ...
- C#同步、异步编程
同步编程public partial class Form1 : Form { public Form1() { InitializeComponent(); } //同步执行 private voi ...
- Hadoop学习笔记(10) ——搭建源码学习环境
Hadoop学习笔记(10) ——搭建源码学习环境 上一章中,我们对整个hadoop的目录及源码目录有了一个初步的了解,接下来计划深入学习一下这头神象作品了.但是看代码用什么,难不成gedit?,单步 ...