# 测试环境
部署位置：

访问url：

# 补点功能
得到点位所遵循的网格信息：横竖斜率和最近两点间距离和次最近两点间距离。 check

得到框选区域px坐标 check

px坐标转为原始坐标 check

连通规则设置：默认是大于一米认为不连通，可手动调整。 check

高度设置功能：必须指定高度。 check

筛选出框选区域可能影响到的所有外围和内部已存在的点，记录其idx。只在符合当前连通高度限制的点中做筛选。 check

如果有重叠的点（只能两两比较了），则要求重设连通高度限制以避免。 todo

要求框选区域中必须有已存在的点，选择一个作为起始点 check

先记录两个列表：外围点位表和框内已有点位表。 check

要补的点构成一个稀疏图，用邻接表存储。补点的过程就是邻接表不断增长的过程：依次处理每个点n，把n的所有还没有被添加进顶点表的相邻点push进顶点表，同时记录到n的边表，然后处理顶点表中下一个点。如果相邻点在选中区域以外，则忽略。直到邻接表不再增长，就说明选中空间内已经补全了点。

框内已有点位表用来初始化顶点表，但相邻关系信息清零。

```
for 每个当前点
  推算相邻点位置
  <!-- 记录与其关系 -->
  if 推算出的相邻点位置在区域外
    if 在外围点位表中能搜到
      记录与其关系
      酌情修改这个外围点位与自己的关系
    else 即不存在
      记录与其关系：-1
  else 即推算出的相邻点位置在区域内
    if 已加入顶点表
      记录与其关系
    else 即还未加入顶点表
      加入顶点表
      记录与其关系
```
新补的点颜色半透明。

(
  我具体看了下一些点位的相邻点列表（ids），没有确定的顺序，唯一的规律似乎只是上下左右的相邻点排在前四位，斜角上的相邻点排在后四位,而且“-1”分别都放在前四位和后四位的最后部分。其他规则就没了。
  判断是否相邻，会考虑高度差吗？不然有的点位说不通。旧数据里甚至还有点位和自身相连的。
  给不出具体规则，我就只能按照这个规则了。
)

save

undo, redo