您好,登录后才能下订单哦!
这篇文章将为大家详细讲解有关TE如何创建一个新的矢量图层,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。
在TE二次开发中,可以加载一个shp或者spatialite文件,作为矢量图层进行加载,同时TE也可以根据一组空间信息,保存成一个shp或者spatialite数据,并且保存在默认的TE临时文件下(C:\Users\当前用户名\AppData\Roaming\Skyline\TerraExplorer\FeatureLayers),可以从这个目录中,将数据拷贝出来进行使用。
在TE中创建一个新的矢量图层的步骤如下:
1、使用TE中Creator接口的CreateNewFeatureLayer方法,其中的4个参数说明layerName是在fly的信息树中显示的名称,LayerGeomType是图层的空间几何类型(点、线、面或者混合),sConnectionString图层的连接字符串,TEPlugName=OGR;FileName=NameOfShapeFile.shp 是shp文件的连接字符串,NameOfShapeFile是shp的文件名;TEPlugName=OGR;FileName=NameOfSQLiteFile.sqlite;LayerName=newlayername是spatialite的连接字符串,其中NameOfSQLiteFile是spatialite的名称,LayerName是spatialite中的图层名称,GroupID是在信息树中的父层级id;
2、创建完图层后,如果坐标系和当前的fly工程坐标系不同,要设置图层的坐标系IFeatureLayer.CoordinateSystem.WellKnownText = wkt字符串;
3、图层中要创建的属性信息,需要在DataSourceInfo的Attributes中使用CreateAttribute进行创建,4个参数分别是属性名称、属性类型、长度和精度;属性的个数和类型要确定好,在之后添加属性的时候,需要按顺序一个个进行添加;
4、属性创建完成后,需要往图层里添加要素,要素是有空间信息和属性字符串组成的,比如说,以上添加了4个属性,那属性字符要包含4个元素,中间使用分号(;)隔开,空间信息使用SGWorld.Creator.GeometryCreator.CreateGeometryFromWKT(wkt字符)进行创建,使用 var pIFeatureGroup= pLayer.FeatureGroups[0] as IFeatureGroup;获取图层的pIFeatureGroup,pIFeatureGroup.CreateFeature(空间信息, 属性信息),这样就能创建一个矢量对象了;
5、循环创建完成对象后,可以设置图层的一些常用属性, pLayer.Visibility.MaxVisibilityDistance = 1000000,可视度等等,之后保存图层, pLayer.Save(),即完成图层的创建;不同坐标系的图层, pLayer.Reproject = true,还需要转换坐标系并且进行刷新操作。
关于“TE如何创建一个新的矢量图层”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。