Skyline开发:fly工程矢量图层批量修改

在制作fly的过程中,需要发布网络地址的矢量图层,或者把矢量图层切换到本地地址,TE的打包功能中,并不能将本地地址的矢量图层打包成网络地址,需要手动进行修改,矢量图层数量多的情况下,修改起来还是一个挺大的工作量。
在TE二次开发的程序中,可以结合fly工程的遍历方法和矢量图层的连接字符串进行批量修改,减少一个一个修改的工作量。
矢量图层的本地数据连接字符串是以下格式:FileName=矢量图层路径+图层名称;TEPlugName=OGR;
矢量图层的网络连接字符串,以sfs发布的数据为例:Server=http://ip地址/SFS/streamer.ashx;WFSVersion=1.1.0;LayerName=图层名称;CRS_XY_OR_YX=1;SFS=1;TEPlugName=WFS;
两种连接字符串中,图层名称在发布的时候保持一致,即可用程序进行替换。
首先遍历图层的函数,在TE的API中有详细的示例代码,可以去其中查找参考;
遍历到矢量图层后,可以根据图层id获取到图层 IFeatureLayer66 _flayer = _sgWorld.ProjectTree.GetLayer(treeid);
string _layerConStr = _flayer.DataSourceInfo.ConnectionString;
这样就能获取图层的连接字符串,从字符串中查找到图层的名称,把图层的连接字符串替换成新的,即可实现图层连接字符串的更新,更新完的图层需要用代码刷新一下。

_flayer.DataSourceInfo.ConnectionString = _neturl;
_flayer.Refresh();

注:连接网络版的图层,需要修改程序能连接到服务器,不然刷新是不能执行的,也不能达到图层的刷新。

Skyline开发:fly工程矢量图层批量修改_第1张图片

更多文章,请关注公众号查看:
Skyline开发:fly工程矢量图层批量修改_第2张图片

你可能感兴趣的:(gis)