首页 / 浏览问题 / 三维GIS / 问题详情
iClient3D 绘制管线
204EXP 2016年12月05日
我绘制线对象之后,可以通过设置风格或者贴图使线对象成为管线的样子吗?

2 个回答

可以的哈,你直接把符号ID设置为管线符号的ID即可。

就是你发布的工作空间的符号库得有相应的符号,如果没有,就先把服务停了,用桌面打开工作空间新建一个,记下ID即可。
3,389EXP 2016年12月05日
可以不通过idesktop吗?
还可以通过组件开发,最简单的就是桌面哈。
可以只用iClient吗?
您好,不行的。
按照您说的把符号的id设置为管线id,那我用iclient在浏览器中画一条线把他的id设置为符号的id不行吗?
您说说到底想实现一个什么样的功能呢?
Sorry,刚才有点事情。这样,我想在浏览器的显示的场景中添加管线。有个显示效果就行。
是这样的,场景的三维管线,是需要构建网络数据的,目前只能在桌面或者组件进行。目前客户端不能直接绘制三维数据,即使在客户端绘制了线,也是二维的,即便你通过转换成三维对象,也设置了风格,可以显示出来,但没有什么意义啊。
哥们咱们回归下这个问题,我现在已经通过iobject取到符号的id了,在页面我也能画出线了,该怎么设置才能让这个我画的这条线符号化?

在客户端设置吗?

获取线图层的style3D,

然后set_lineSymbolID()。这个id是你发布的工作空间符号库有的才行。

然后图层layer3D.set_style3D.

var layer3DServiceInfo = layer3DServicesList.get_item("buildings@RealspaceSample");
					//构造一个Style3D对象
					var style3D = new SuperMap.Web.Core.Style3D();
				
					//获取图层的风格信息
					style3D = layer3DServiceInfo.get_style3D();
//写到这儿
style3D .set_lineSymbolID()
					
					//加载图层默认的风格
					layer3Ds.get_item("buildings@RealspaceSample").set_style3D(style3D);
					scene.refresh();

我在绘制线的时候直接给它style3D_1.set_lineSymbolID(16);这样可以吗?

我想画完线就直接显示效果,不保存就看个效果。
set_lineSymbolID这个方法设置的是三维线型符号库中的ID吗?
你不保存的话,你就把对象放到跟踪层,设置feature3D的风格,画完就设置,立马就显示的。

我就是这么写的但还是不行,你看下代码

我看你底部高程设置的-10啊,是不是在地下去了,你先设置一个地上的看看能不能看见啊。

是在通过地下挖掘看的,你看一下我画的先就是这样。

那您再确定一下你那个ID为40的符号是否存在呢?不能是二维符号哦。

这应该就是存在吧

您先停止iserver服务,直接用桌面打开这个工作空间看看符号库,确定一下是二维还是三维的符号。
怎么判断三维还是二维?
三维的是不是都带3D这个水印?如果是的话那就是二维符号库。
是的,二维符号不行哈,二维符号只有贴地才能看见。您得设置一个三维符号。

我导入了一个,给水管的,编号是964527,之后我就直接style3D_1.set_lineSymbolID(964527);就可以了吗?还需要就行什么其他的配置吗?

直接设置就可以了
我去还是不行,怎么办!!!
有保存工作空间吗?

要不您先别设置ID,随便设置一个线的颜色看看有没有变化。
工作空间保存了,设置线宽和颜色是好使的,我这iserver没有停,用Idesktop打开RealspaceSample.sxwu数据集是看不到的但是却可以看见符号库,能看见符号库这是正常的吗?

3D符号我是在RealspaceSample.sxwu中添加的

更改了工作空间要重新启动iserver服务啊。重启试试。
还是不行啊,怎么办
您打开您的appdata文件夹,把这个“ocalhost_8090_iserver_services_3D-sample”找你发布的服务。

\AppData\LocalLow\SuperMap\Cache\localhost_8090_iserver_services_3D-sample\SymbolLibrary\

就这个文件夹里面有没有符号库。
sample.bru 有个这个文件,就114k大
.lsl结尾的才是线符号库。

那就是没有符号库呗?

那我把Pipe3D.lsl文件放进去,用不用改名字?

这么操作还是不行

我该怎么操作才能把.lsl符号库加到里面?

确保工作空间有线符号。

停止iserver,把客户端\AppData\LocalLow\SuperMap和AppData\Local\SuperMap目录删了,iserver的\supermap_iserver_8.1.0_win64_zip\webapps\iserver\output目录删了再重启iserver试试。

还是不行,imageimage如图,这样是不是代表工作空间有线型符号库。我用的是iserver自带的RealspaceSample.sxwu这个工作空间。是不是因为场景中没有用到线型库,所以加载不出来?

这样的话,您那有TeamViewer 11吗?ID密码发一下,远程看看。
最后发现该客户,虽然工作空间有符号库,但是加载场景并没有加载该工作空间的场景,而是直接添加一个图层,所以没有加载符号库,导致问题。

正确的做法是把图层保存到场景,然后调用scene.open打开场景,避免这个问题。
十分感谢
可以的,将线数据设置大地坐标
17EXP 2016年12月05日
能具体点吗?我不太明白
我可以发给你个视频看一下,留个邮箱
1520861239@qq.com谢谢了
...