阅读:1748回复:2
[求助]mapx是否可实现所有图层同时移动?
<P>大家知道在mapinfo中一次只能移动第一个图层的图元,但有时需要所有图元一次性移动(例如统一改变所有图元的坐标)。我用mapx编程实现,图元是移动了,但却发生了变形。主要代码如下:</P>
<P>for i:=1 to map1.layers.count do</P> <P>begin </P> <P> lyr:=map1.layers.item[1]; </P> <P> ftrs:=lyr.allfeatures;</P> <P> for j:=1 to ftrs.count do</P> <P> begin</P> <P> ftr:=ftrs.item[j];</P> <P> ftr.offset(x,y); // 移动第一层的所有图元,x,y分别为x.y方向的偏移量</P> <P> end;</P> <P> map1.layers.move(1,map1.layers.count);</P> <P> // 将第一层移动到最下层,第二层移到第一次,以次下去,直到最后一层移到第一层且执行完图元的移动操作</P> <P>end;</P> <P>大概的代码如上,图元是移动了但却发生了变形,开始以为是没有申明图元的编辑模式为图元编辑模式,但申明后还是一样。我觉得自己的思路应该没问题,不知是根本不能实现还是程序有问题,恳请大家给予指点。</P> <P>谢谢!!!!! </P> [此贴子已经被作者于2004-6-29 17:14:32编辑过]
|
|
1楼#
发布于:2004-06-30 15:32
<P>为什么只能移动第一层的图元</P>
|
|
2楼#
发布于:2004-06-30 18:42
因为在mapinfo中,不可能同时设置所有图层为可编辑状态,一次只能设置一个图层为可编辑,而对图元的编辑只能在可编辑图层上进行。所以我把第一个图层设置为可编辑,采用循环方式使所有图层轮流可编辑。
[此贴子已经被作者于2004-6-30 18:43:26编辑过]
|
|