刚接触SkyLine的一点小收获与感触
因为刚接触Skyline不到一个星期,也怕把学习到的忘记掉,所以写一点学习到的一些皮毛的东西,赶紧记录一下,怕回头忘记
1.网上关于web端的开发非常多,也有很多牛人分享自己的经验,所以学习起来也相对更便捷
2.关于插件的开发,网上基本上没有,我也只找到一个是用C#做的,显然和Skyline的html插件形式还不一样,但是还有安装文件里有关于插件的html的源码可以学习,帮助文档也有关于如何组织插件,以及发布的资料,不过我没实验成功(尴尬而不失礼貌的微笑)
3.桌面端的开发相对容易一点,网上也有很多资料,并且帮助文档也有很多基础功能的代码可以参考
下面是我刚学习到的一些东西(做的是在上面提到的那个C#插件基础上做的一个小功能,可以根据shapefile的属性批量生成模型)
先说一下结果吧,结果也做出来了,但是之后发现人家软件本身就集成了这个功能。(那个复制对象的.....)
1.在ArcGIS里将shapefile面按属性查询导出
2.基于查询出来的面建立大小适中的渔网(渔网中有每个网格的中心点)
3.按空间位置查询,把面包含的中心点提取出来(这些点就是放模型的位置)
4.在skyline里用Ifeaturelayer,Ifeaturegroup,Ifeatures,Ifeature等一系列接口把点转化为Position,在这个位置上创建模型
但是虽然做成了,还是有缺点(还挺致命的),生成的模型没有在一个层上,,数据没有组织好,中间也走了很多弯路,但是弯路上也学到了很多东西。贴一些代码吧,比较菜....
a.关于如何图层中得到features(用的6.6的版本)
{
try
{
ISGWorld66 sgworld = new SGWorld66Class();//很多东西都来自这个ISGWorld的接口
string GroupID = sgworld.ProjectTree.FindItem("tree");
{
MessageBox.Show("不存在");
}
else
MessageBox.Show("the id is" + GroupID);
IFeatureLayer66 featurelayer = sgworld.ProjectTree.GetLayer(GroupID);
IAttribute66 attribute = featurelayer.DataSourceInfo.Attributes.get_Attribute(1);
IFeatures66 features = point.GetCurrentFeatures();//get the all features
MessageBox.Show(Convert.ToString(features.Count));//static the number of features;
}
catch (Exception ex)
{
MessageBox.Show("Unexpected error:" + ex.Message);
}
return null;
}
{
IFeature66 feature = (IFeature66)features[i];//get the specific feature
featureList.Add(feature);
}
return featureList;
{
try
{
IPoint point =(IPoint)feature.Geometry;
IPosition66 position = null;
double X = point.X;
double Y = point.Y;
position = Creator.CreatePosition(X, Y, 0, AltitudeTypeCode.ATC_ON_TERRAIN, 0, 0, 0, 500);//这个ICreator的接口很厉害,啥都能生成,有点夸张了(除了坐标的位置是提取的,其他的我都是给死了)
return position;
}
catch (Exception ex)
{ MessageBox.Show(ex.Message); }
}
d.有了位置就可以建模型了
{
string tMsg = String.Empty;
string fileName = "D:\\BaiduNetdiskDownload\\skyline\\tools\\Data-Library\\3D-Objects\\Helicopters\\500d.xpc";//the path of my model;
double scale = 5;//set the scale for model;
string groupID ="";//as the node in the project tree;
string Description = "myfirst";
ITerrainModel66 mymodel = null;
for (int i = 0; i < list.Count; i++)
{
mymodel=Creator.CreateModel(list[i], fileName, scale, ModelTypeCode.MT_NORMAL, groupID, Description);
}

刚接触SkyLine的一点小收获与感触的更多相关文章
- 关于openssl几个API的一点小收获
		今天心血来潮突然想搞搞openssl了,趁着端午小假,刚好有空可以鼓捣孤岛自己喜欢的东西,出去东奔西跑的实在太造孽了,还是宅起来给自己充充电吧.下载openssl最新代码1.0.1g,修复了" ... 
- BUI Webapp用于项目中的一点小心得
		接触BUI也有一段时间,也用在了移动端的项目开发中,总的来说,该框架用起来也挺灵活的,控件可以自由定制,前提是自己能认真地学习该框架的api,因为api里面说的东西比较详细,如果没有仔细看的,可能有些 ... 
- java工程项目里,在一个包里面,不能出现同名的类名,这问题是刚接触java才会遇到的,特别是新手一般都没有建立包,而是使用默认的,易出现同名的类名,导致eclipse提示错误
		java工程项目里,在一个包里面,不能出现同名的类名,这问题是刚接触java才会遇到的,特别是新手一般都没有建立包,而是使用默认的,易出现同名的类名,导致eclipse提示错误. 问题: 创建了一个工 ... 
- 刚接触js不久,自己写的banner幻灯片效果。
		对于我这种菜鸟来讲,刚接触项目.叫我用插件,其实我说插件太臃肿不想用,倒不如说我是看不懂那些插件...- -(更愿意自己写点看得懂的代码,顺便也是个学习的过程) 所以自己花了些时间,自己来写了个dem ... 
- 关于win8开发的一点小总结
		我今天做画面的时候,发现了一点小问题. 我在xmal文件里面加了一个CheckBox控件,设置IsChecked属性为True,并添加了Checked事件.Checked事件里面有对另外一个TextB ... 
- 关于PHP魔术方法__call的一点小发现
		好久没有上博客园写文章了,今晚终于有点空了,就来写一下昨天的一点小发现. 我自己所知,C++,Java的面向对象都有多态的特点,而PHP没有,但PHP可以通过继承链方法的重写来实现多态的属性.而魔术方 ... 
- net core体系-web应用程序-4net core2.0大白话带你入门-8asp.net core 内置DI容器(DependencyInjection,控制翻转)的一点小理解
		asp.net core 内置DI容器的一点小理解 DI容器本质上是一个工厂,负责提供向它请求的类型的实例. .net core内置了一个轻量级的DI容器,方便开发人员面向接口编程和依赖倒置(IO ... 
- C与C++在形參的一点小差别
		先看一下以下的代码: int fun(a,b) int a; int b; { return 10; } void main(int argc, char ** argv) { fun(10); re ... 
- 刚接触HTML5应该先学哪里才好?
		好吧,话不多说,直接来点干货吧! 刚接触html的小白都感觉摸不着头脑?应该怎么学习呢,其实HTML5可能对于还没有接触过的小白来说会比较的难,听起来也比较新颖.这是个什么骚东西!其实不然,这个就是构 ... 
随机推荐
- 移动平台对meta标签的定义
			一.meta 标签分两大部分:HTTP 标题信息(http-equiv)和页面描述信息(name). 1.http-equiv 属性的 Content-Type 值(显示字符集的设定) 说明:设定页面 ... 
- 为什么有些应用非VxWorks不可
			实时操作系统(RTOS)是专用于对时间精确度敏感的操作系统.典型的情况是,这种应用需要从传感器收集数据.做出分析并对关键性设备进行控制,例如飞机.列车.手术刀.这类控制必须精准,不容许出现 ... 
- Ubuntu16.04配置vncserver后 导致重复进入登陆界面,无法进入桌面的问题
			1.在配置vncserver的时候,可能导致该用户不能正常登录桌面. 2.问题现象:正确输入密码,系统无法进入桌面,闪回到登录界面. 3.在登录界面按ctrl+Alt+F1,进入虚拟控制台(输入r ... 
- 统计网络time_wait连接状态及tcpip连接数
			netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}' LAST_ACK 1 SYN_RECV 14 ESTABLIS ... 
- 一句话说明Facbook React证书的矛盾点
			这项专利授权说,如果您要使用我们根据这项授权发布的软件,假如您因为专利侵权而提起诉讼,您将失去我们的专利许可. 
- vue问题六:计算属性,依赖发生变化时,重新计算computed:
			<el-form-item label="单价:" prop="price" > <el-input v-model="addfor ... 
- 算法试题 - 找出最小 k 个数
			题目 题目:输入n个整数,找出其中最小的K个数.例如输入4,5,1,6,2,7,3,8这8个数字,则最小的4个数字是1,2,3,4,. 解析 思路1 这一题应用堆排序算法复杂度只有O(nlog k), ... 
- for...in 与 for...of
			在js中, 对于Object,一般for...in 来进行迭代,不能使用for...of // let obj = {a:1,b:2} for(let i of obj){console.lo ... 
- jQuery页面加载完毕事件及jQuery与JavaScript的比较
			1.jQuery概述 jQuery是一个JavaScript库,它集成了JavaScript.DOM.CSS和Ajax,简化了JavaScript编程,提倡write less, do more. 2 ... 
- 虚拟环境mkvirtualenv
			python虚拟环境mkvirtualenv使用 安装virtualenvwrapper pip install virtualenvwrapper 修改默认虚拟环境目录: 环境变量中新建: ... 
