三维数字沙盘电子沙盘人工智能地理信息系统开发教程第14课
很久没有写了,主要前段时间在针对怎么显示高精度的 倾斜数据而努力,现在终于实现了效果不错。以前的版本显示倾斜数据控制不太好。最近SDK也改动了不少,需要试用开发的请直接联系(仅限WPF二次开发人员)
对了。目前系统暂只支持smart3d生成的kml格式的数据,由专有的录入程序录入到sql数据库中,在浏览时会在本地建缓存,
并可以通过system.ini配置可对某一批数据进行位置高低等微调整。
然后下面听说最近比较流行一些 效果,抽几分钟时间做了一个,你们看看如何,用SDK的话,只需要很少几行代码即可实现:
下面介绍怎样在地球上增加自己的FrameworkElement,因为FrameworkElement为WPF的基础UI对象,基本上所有的UI对象都是继承它出来的,废话少说,上代码:
Button Y1 = new Button();
Y1.Width = 100;
Y1.Height = 100;
Y1.Background = new SolidColorBrush(Colors.Red); //自己的UI对象
NewGisBiao.M3D.UserGisUI3dObject2 JuLiSechBiao = new NewGisBiao.M3D.UserGisUI3dObject2(); //新建一个承载UI对象的东东
JuLiSechBiao.PareantEarth = (NewGisBiao.Base.GISInterfaseForBiao)IniRead.IniReadWrite.MPareant;//设置它的GIS球对象
JuLiSechBiao.Manage = IniRead.IniReadWrite.BiaoManage;//设置它的标号管理器
JuLiSechBiao.MaxZoom = 9;//最大显示层,当小于9层的时候不显示
JuLiSechBiao.MUIValue = Y1;//UI对象
JuLiSechBiao.DHi = 0.01;//相对于地形的高度
JuLiSechBiao.ZScal = 0.5;//相对缩放
JuLiSechBiao.Scal.ScaleX = 1; //固定东东
JuLiSechBiao.Scal.ScaleY = 1;
JuLiSechBiao.Scal.ScaleZ = 1;
JuLiSechBiao.AutoScal = true;//是否自动缩放,不管在哪一层都是一样大
JuLiSechBiao.AutoAngle = true;//是否自动角度,使终对着摄像机
JuLiSechBiao.CenterType = JunBiao.CenteType.左下角;//中心点类型
IniRead.IniReadWrite.BiaoManage.AddJunBiao(JuLiSechBiao);//增加到军标管理对象中。也可以不加
JuLiSechBiao.MWidth = 250;//三维面片的大小
JuLiSechBiao.MHeight = 150;
JuLiSechBiao.MRX = 90;
if (IniRead.IniReadWrite.MPareant is MTGIS3D) //手动刷新一下自动角度。。。bug
{
((MTGIS3D)IniRead.IniReadWrite.MPareant).TextAxisAngleX.Angle += 0.001;
((MTGIS3D)IniRead.IniReadWrite.MPareant).TextAxisAngleX.Angle -= 0.001;
}
JuLiSechBiao.Center = new Point(103, 30);//设置中心点
JuLiSechBiao.ISShow = true;//显示
//JuLiSechBiao.ISDelete = true;//这个不用说了啥
————————————————
版权声明:本文为CSDN博主「种瓜的」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/xtgmd168/article/details/85264680