1. 业务空间有所在楼层
2. 业务空间有外轮廓
1. 查出所有有所在楼层关系, 并且外轮廓不是null的业务空间
2. 根据所在楼层, 业务空间分区类型来将业务空间分为不同的组 (例如 : A 楼层下的默认业务空间是一组, A楼层下的空调分区是另外一组)
3. 计算每个分组内的业务空间的相邻关系
计算相邻算法 (如下图):
1. 在一个分组内, 查到所有的门信息,根据门的outline作垂线算出线段的方程,y=kx+a
1). 根据 x2-x1 = 根号 d2/1+k2, 和门的中点,算出上下两边长度均为door_length长的点
2. 将上面找到的点, 依次与组内其他业务空间外轮廓做一次点是否在多边形内的判断, 如果在, 则认为该多边形与图中多边形相邻
[
[
[
{点坐标},
{点坐标}...
], // 子轮廓的外轮廓
[
{点坐标},
{点坐标}...
], // 子轮廓的第n个需要被排除的轮廓
], // 子轮廓
[
[
{点坐标},
{点坐标}...
]
],
]
源码
1. 项目id