如何按空间位置顺序编号,并保持相邻图斑不跳号?

尝试过使用坐标排序的方法,我用的是图斑的中心点,因为不规则图斑数量比较多,使用坐标排序后会出现跳号的情况比较多。sort我也试过,效果也不太好。
能不能在坐标排序的基础上加上空间距离的判定,使得相邻图斑的编号保持连续呢?见下图:
排序.jpg

 
 
已邀请:

turtle

赞同来自: 刀光剑影 江宝骅 丛浩 潘建伟

假定是按照图斑中心点坐标进行排序,排序原则为自北向南自西向东(纬度降序经度升序)。
按照以上排序排序原则则会出现题目中所示的9与10之间出现了12的情况(由于中心点位置关系)。
解决的困难在于如何判断哪些排序后的图斑需要调整序号(也就是不按照以上的排序)?
目前想不到简单直接的解决方案,有个思路大致如下:
1. 先按照假定的排序原则进行排序,附上编号;
2. 计算编号与下一个编号之间的方向角度(两个中心点坐标计算),根据方向角度可以判断两个相邻编号斑块之间的位置关系;
3. 相邻两个编号(例如A,B,编号B>A)的中心点生成一条线,判断这条线上经过哪些图斑,是否存在编号大于B的图斑,不存在的话继续;存在的话(例如编号C)需要计算AC与BC中心点之间的方向角度,分别判读与水平方向的夹角(需要设定一个阈值,假设夹角均小于10度,则认为需要交换现有编码,即C图斑编号调整为B,B调整为C);
4. 不断迭代直至结束
 
还没有代码实现。。
 

哆啦A梦晨

赞同来自:

谢谢徐老师,现在我还在找自动从北到南从西到东排列小班的方法,老师可否传授一下。

Xingx.C

赞同来自:

老师你好,我想知道你这个排序效果是怎么做到的,想学习一下

xiaosi9524 - GISER

赞同来自:

你要自己写个排序,是自上而下或是自左到右等

要回复问题请先登录注册