首页 / 浏览问题 / 组件GIS / 问题详情
用iobject的那个方法可以自动生成平行线啊?
185EXP 2018年01月25日

有很多道路,其中有的道路是双线的,有的道路是单线,我们现在的业务需求是要把单线的道路做成双线的平行线,本来是双线的道路就不用做了,如果是一个小的地区的话用桌面软件就可以完成了,但是有的地方道路特别多,所以想问问能不能用iobject中的方法去实现?

就像是这一种,标注的单线做成平行线,没有标注的双线部分不变

1个回答

您好,首先明确一个问题,你数据中的双线是一个复合对象还是两条线对象?如果是前者,则容易将你的双线和单线区分开来,如果是后者,我没想到方法怎么去区分你数据的单双线,这个得你自己去考虑怎么区分。在区分开你原数据集中单双线之后,我们有两种方式让单线显示成双线。1.设置线的风格为双线风格。2.根据单线对象,做一定的偏移,从而构造出双线对象。
5,985EXP 2018年01月25日

....两条线对线crying

你得先去区分开哪些是单线,哪些是双线,比如把两个线对象组合一个,就构成了一个有两个子对象的复合“双线”,这样根据子对象的个数就把单双线区分出来了。然后再对单线作偏移,得到另一个偏移线对象,再跟原来的线对象组合起来,这就构成了“双线”
或者没特殊需求,你使用双线的风格也可以嘛

数据是两条单线的,只不过是离得比较近,我们这边就直接合当成平行线用了,但是合并完后有一段是没有所谓的平行线的

上图是在idesktop中打开选中的
这个你就只有把线解组了,把短得那一条删掉,以剩下的线为基准,作偏移,得到另一条偏移后得线对象,这样就能得到完整的双线。
恩恩   解组也可以,解组在iobject中的方法是哪个啊??
这个你在iDesktop里面选中线,右键,解组,然后把短的删掉就行,不用写代码,要写代码的话,其实就是获取复合对象的子对象,把原对象删掉,子对象作为新对象添加到数据集中。
复合对象的类型是GeoCompound
...