封闭先编号排序问题
我希望编号的顺序是从左到右,从上到下的排序,要怎么修改,请大侠们指点,谢谢以图形中心排序即可。那有那么精准的要求。 soly2006 发表于 2014-6-2 22:52
以图形中心排序即可。那有那么精准的要求。
我也这样认为,求出封闭线的中心点(形心),将中心点做一个点集,然后排序就行了,如果是测绘用,自然界的土地不是整齐的,没有那么高的精度排序 支持楼主上传分享 不懂给你顶一下 我也需要,不过数字为属性块好点 本帖最后由 llsheng_73 于 2014-4-25 21:44 编辑
其实测绘对于排序很头痛,首先是地籍图要求宗地编号按"弓"字形排列,同时要求界址点以西北角开始按顺时针方向...还好这后边一项都用CASS软件搞定了
对于宗地图要求编号按一定规则排列还比较好理解,因为城镇地籍的宗地再不济也是布满的
但气人的是现在很多地方的农业局又要求地块编号按"川"字形排列,这其实有点无理了,地块它与宗地不一样的是它很多时候是离散的,因此这样排序出来并不能取得明显的效果
而现在测绘已经越来越没有底限,基本都是业主要求什么做什么,一般不去考虑因此增加多少成本而与业主讨价还价(这也很无奈,测绘的门槛越来越低,不愿意做有的是人抢着干,所以市场混乱也导致测绘基本不敢再打技术招牌--如果单说一般的外业确实也没多少技术含量)
上边全是废话
现在说下个人的想法,首先把所有地块的包容盒求出来,第一个地块应该是所有地块中离西北角p最近的一个,得到这个地块的西南角坐标作为p,从除去第一个地块的所有地块中找出离它最近的一个,这个时候应该限定一下p到最近点的方向是大致向南而不是向北或者向东的,依次循环到南方找不到地块就完成了最左边的一列,又从余下的所有地块中找出西北角点p,再次重复,直到没有地块.(求距离p点最近的地块时,最好也用地块的包空盒进行计算而不要用 vlax-curve-getdistatpoint ,因为这样不好控制它的方向,有可能距离确实是最近的一个,但它的方向却可能往东的而被排除,导致最终排序是混乱的)
这个方法的好处是算法比较好理解,但速度可能不会快,要速度快的算法以我的水平还想不出来,虽然看过院长的排序电演示和黄长老的排序子程序,但仍然想不出高效的办法
应该是封闭线吧,别让人觉得凡是测绘的没几个有文化的,虽然我们多数时候干的就是苦力,但并不是因为我们什么都不懂什么都不会 不同的行业,理解的东西不一样啊!
排序前和排序后的图纸,都附上;大家才好理解你的意思和最终达到的效果。 llsheng_73 发表于 2014-4-25 21:37
其实测绘对于排序很头痛,首先是地籍图要求宗地编号按"弓"字形排列,同时要求界址点以西北角开始按顺时针方 ...
说的很对。 同行啊,说的好。苦逼的现实 ;; 从上到下从左到右排序;; 需要e派工具箱(XCAD)的支持:http://yunpan.cn/QXQKsW9gAPmpF 访问密码 2ffa
(defun c:tt ()
(xyp-CMDLASC0)
(if (setq ss (ssget '((0 . "LWPOLYLINE") (90 . 4) (70 . 1))))
(progn
(setq lst (xyp-Sort-Plist (xyp-Sort ss 10 "Y-max") 1)
lst (mapcar 'cdr lst)
i 0
)
(foreach s1 lst
(xyp-Text 5 (xyp-9pt s1 5) (itoa (setq i (1+ i))))
(setq i (1+ i))
)
)
)
(xyp-CMDLA1)
)
页:
[1]
2