skyline实现点图层的模型替换

 

假如给你一个shp格式的点图层文件,如何通过二次开发(skyline),在skyline的三维视窗中,将二维点替换成一幅幅图片呢。注意这些点是随意的。

利用skyline自定义的接口,实现上述功能应该还是比较简单的。(这里就不再介绍具体界面的设置,只讲核心思想所在。)

1.首先要考虑如何加载一个shape(假设文件名为points.shp)。可以利用如下程序实现:

//(IIfoTree为IInformationTree5声明的对象,ilyr为ILayer5声明的对象。)

public void LoadLayer(object Sender,System.EventArgs e)

{

string  XMLLayerInfo="<PlugData><LayerName>C:\\Users\\amos\\Desktop\\UsingILayer\\bin\\Debug\\points3.shp</LayerName><PlugType>shape</PlugType><StreamedLayer>1</StreamedLayer></PlugData>";
//确定打开points.shp文件的路径。
       

iLyr=IInfoTree.CreateLayer("points",XMLLayerInfo,0);
//装载shp数据,使其显示在视窗当中。并将返回值(system._ComObject,这个我也不明白。)传递给iLyr。

iLyr.Load();

}

2.上一步实现了points.shp文件的加载,那么接下来便是对图层中的点要素进行相关操作,使其由原先的点变为后来的图片。即用图片一一放置在所有点的位置上。(这里只能实现统一替换,只能利用同一种图片进行替换。)

这时候就体现了二次开发的优越性了。利用打包的类、接口,经实例化调用之后,便可以实现。代码如下:

iLyr.SetProperty("Image file",替换图片的完整路径(如:@"C:\temp\tree.tif"));

//完成模型的替换。真是太简单了。

iLyr.SetProperty("Scale",1000);//设定模型显示的比例,防止过小而看不到。

经过这两步就可以实现这个功能。

 

本文转自网易博客木乐的文章,在此感谢!

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值