Sp2Sp3.md 1.4 KB

业务空间邻接关系

前置条件

1. 业务空间有所在楼层
2. 业务空间有外轮廓

处理逻辑

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

image

函数

业务空间轮廓结构

[
    [
        [
            {点坐标},
            {点坐标}...
        ], // 子轮廓的外轮廓
        [
            {点坐标},
            {点坐标}...
        ], // 子轮廓的第n个需要被排除的轮廓
    ], // 子轮廓
    [
        [
            {点坐标},
            {点坐标}...
        ]
    ],
]

源码

入参

1. 项目id

例子