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();

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

在这里插入图片描述

更多文章,请关注公众号查看:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值