一种楼栋排布方法及装置转让专利

申请号 : CN202010363806.2

文献号 : CN111563290B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 蒋佩钊

申请人 : 深圳集智数字科技有限公司

摘要 :

本申请实施例公开了一种楼栋排布方法及装置,包括:获取楼栋信息和可排布区域,逐一从小于或者等于待排布楼栋的数量的正整数中选取目标数量,选取目标数量的待排布楼栋组成楼栋组合,确定楼栋组合对应的楼栋区域;根据楼栋信息中待排布楼栋的类型,在可排布区域中确定目标排布区域;将目标排布区域与楼栋区域进行匹配,若具有符合匹配条件的楼栋区域,将符合匹配条件的楼栋区域作为目标楼栋区域,将目标楼栋区域对应的楼栋组合排布至目标排布区域,进行更新,返回执行上述在可排布区域中确定目标排布区域的步骤以及后续步骤,直至待排布楼栋的数量为零和/或可排布区域中不具有目标排布区域。

权利要求 :

1.一种楼栋排布方法,其特征在于,所述方法包括:

获取楼栋信息和可排布区域;

获取所述楼栋信息中待排布楼栋的数量,逐一从小于或者等于所述待排布楼栋的数量的正整数中选取目标数量,选取所述目标数量的待排布楼栋组成楼栋组合,确定所述楼栋组合对应的楼栋区域;

根据所述楼栋信息中待排布楼栋的类型,在所述可排布区域中确定目标排布区域;

将所述目标排布区域与所述楼栋区域进行匹配;

若具有符合匹配条件的楼栋区域,将符合匹配条件的楼栋区域作为目标楼栋区域,将所述目标楼栋区域对应的楼栋组合排布至所述目标排布区域,更新所述楼栋信息中待排布楼栋的数量、所述楼栋组合以及所述可排布区域;若不具有符合匹配条件的楼栋区域,更新所述可排布区域;

返回执行上述在所述可排布区域中确定目标排布区域的步骤以及后续步骤,直至所述待排布楼栋的数量为零和/或所述可排布区域中不具有目标排布区域;

其中,所述根据所述楼栋信息中待排布楼栋的类型,在所述可排布区域中确定目标排布区域,包括:获取待排布楼栋的类型对应的预设排布方向,获取预设区域宽度;

从所述可排布区域的边界,按照所述预设排布方向以所述预设区域宽度作为间隔距离选取可排布区域的区域长度;

按照所述区域长度和所述预设区域宽度对所述可排布区域进行排布区域的划分;将得到的长度为所述区域长度、宽度为所述预设区域宽度的区域确定为目标排布区域。

2.根据权利要求1所述的方法,其特征在于,当所述目标排布区域中包含障碍区域时,所述方法还包括:若所述障碍区域位于所述目标排布区域的边界位置时,将所述目标排布区域去除所述障碍区域后得到的排布区域作为目标排布区域;

若所述障碍区域不位于所述目标排布区域的边界位置时,将所述目标排布区域根据所述障碍区域的边界进行区域划分,得到子排布区域;将所述子排布区域依次作为目标排布区域。

3.根据权利要求1所述的方法,其特征在于,若具有符合匹配条件的楼栋区域,所述更新所述楼栋信息中待排布楼栋的数量以及所述可排布区域,具体包括:从所述待排布楼栋的数量中减去所述目标楼栋区域对应的楼栋组合中的待排布楼栋的数量,得到更新后的待排布楼栋的数量;

从所述楼栋组合中去除所述目标楼栋区域对应的楼栋组合;

从所述可排布区域中去除所述目标排布区域,得到更新后的可排布区域;

若不具有符合匹配条件的楼栋区域,所述更新所述可排布区域,具体包括:从所述可排布区域中去除所述目标排布区域,得到更新后的可排布区域。

4.根据权利要求1所述的方法,其特征在于,所述将所述目标楼栋区域对应的楼栋组合排布至所述目标排布区域,包括:将所述目标楼栋区域对应的楼栋组合放置于所述目标排布区域中,获取所述目标楼栋区域对应的楼栋组合中待排布楼栋的位置,将所述待排布楼栋按照优先调整方向进行移动,直至所述待排布楼栋与所述可排布区域的边界距离等于预设边界距离和/或与已排布楼栋之间的距离等于预设楼间距离,确定所述待排布楼栋的排布位置;其中,所述已排布楼栋为已确定排布位置的待排布楼栋。

5.根据权利要求1所述的方法,其特征在于,所述选取所述目标数量的待排布楼栋组成楼栋组合,具体包括:将数量为所述目标数量的待排布楼栋按照不同的排列角度进行排列,分别得到对应于所述目标数量的不同的排列角度的楼栋组合。

6.根据权利要求5所述的方法,其特征在于,所述确定所述楼栋组合对应的楼栋区域,包括:获取所述楼栋组合中待排布楼栋的排列角度,从所述楼栋信息中获取所述楼栋组合中待排布楼栋的长度、宽度以及高度,根据所述待排布楼栋的高度计算所述待排布楼栋之间的距离;根据所述待排布楼栋的长度和宽度、所述待排布楼栋之间的距离、所述楼栋组合中待排布楼栋的数量以及所述待排布楼栋的排列角度,计算所述楼栋组合的长度和宽度,根据所述楼栋组合的长度和宽度确定所述楼栋组合的楼栋区域。

7.根据权利要求1所述的方法,其特征在于,所述匹配条件为楼栋区域的长度小于或者等于所述目标排布区域的长度以及楼栋区域的宽度小于或者等于所述目标排布区域的宽度。

8.一种楼栋排布装置,其特征在于,所述装置包括:

获取单元,用于获取楼栋信息和可排布区域;

组合单元,用于获取所述楼栋信息中待排布楼栋的数量,逐一从小于或者等于所述待排布楼栋的数量的正整数中选取目标数量,选取所述目标数量的待排布楼栋组成楼栋组合,确定所述楼栋组合对应的楼栋区域;

确定单元,用于根据所述楼栋信息中待排布楼栋的类型,在所述可排布区域中确定目标排布区域;

匹配单元,用于将所述目标排布区域与楼栋区域进行匹配;

排布单元,用于若具有符合匹配条件的楼栋区域,将符合匹配条件的楼栋区域作为目标楼栋区域,将所述目标楼栋区域对应的楼栋组合排布至所述目标排布区域;

更新单元,用于若具有符合匹配条件的楼栋区域,更新所述楼栋信息中待排布楼栋的数量以及所述可排布区域;若不具有符合匹配条件的楼栋区域,更新所述可排布区域;

返回所述确定单元,执行在所述可排布区域中确定目标排布区域的步骤以及后续单元对应的步骤,直至所述待排布楼栋的数量为零和/或所述可排布区域中不具有目标排布区域;

其中,所述确定单元,包括:

区域参数获取单元,用于获取待排布楼栋的类型对应的预设排布方向,获取预设区域宽度;

区域长度获取单元,用于从所述可排布区域的边界,按照所述预设排布方向以所述预设区域宽度作为间隔距离选取可排布区域的区域长度;

目标排布区域确定单元,用于按照所述区域长度和预设区域宽度对所述可排布区域进行排布区域的划分;将得到的长度为所述区域长度、宽度为所述预设区域宽度的区域确定为目标排布区域。

说明书 :

一种楼栋排布方法及装置

技术领域

[0001] 本申请涉及计算机领域,具体涉及一种楼栋排布方法及装置。

背景技术

[0002] 在进行地块的开发时,建筑人员首先会根据地块的具体信息以及预先确定的在相应地块上建设的建筑类型,构建相应的地块模型和建筑模型,并在地块模型上对建筑模型进行排布,通过模型排布的方式确定各种建筑排布的方式,选择较优的排布方式作为实际建设的参考排布方式。
[0003] 在现有的地块排布的方法中,大多通过人工排布的方式对建筑模块进行排布,当需要在地块上建立的建筑数量较多或者是类型较多时,通过人工排布的方式进行楼栋排布的效率较低。

发明内容

[0004] 有鉴于此,本申请实施例提供一种楼栋排布方法及装置,能够实现根据楼栋信息和可排布区域对待排布楼栋进行排布,提高地块排布的效率。
[0005] 为解决上述问题,本申请实施例提供的技术方案如下:
[0006] 第一方面,本申请提供一种楼栋排布方法,所述方法包括:
[0007] 获取楼栋信息和可排布区域;
[0008] 获取所述楼栋信息中待排布楼栋的数量,逐一从小于或者等于所述待排布楼栋的数量的正整数中选取目标数量,选取所述目标数量的待排布楼栋组成楼栋组合,确定所述楼栋组合对应的楼栋区域;
[0009] 根据所述楼栋信息中待排布楼栋的类型,在所述可排布区域中确定目标排布区域;
[0010] 将所述目标排布区域与楼栋区域进行匹配;
[0011] 若具有符合匹配条件的楼栋区域,将符合匹配条件的楼栋区域作为目标楼栋区域,将所述目标楼栋区域对应的楼栋组合排布至所述目标排布区域,更新所述楼栋信息中待排布楼栋的数量、所述楼栋组合以及所述可排布区域;若不具有符合匹配条件的楼栋区域,更新所述可排布区域;
[0012] 返回执行上述在所述可排布区域中确定目标排布区域的步骤以及后续步骤,直至所述待排布楼栋的数量为零和/或所述可排布区域中不具有目标排布区域。
[0013] 可选的,所述根据所述楼栋信息中待排布楼栋的类型,在所述可排布区域中确定目标排布区域,包括:
[0014] 获取待排布楼栋的类型对应的预设排布方向,获取预设区域宽度;
[0015] 从所述可排布区域的边界,按照所述预设排布方向以所述预设区域宽度作为间隔距离选取可排布区域的区域长度;
[0016] 按照所述区域长度和预设区域宽度对所述可排布区域进行排布区域的划分;将得到的长度为所述区域长度、宽度为所述预设区域宽度的区域确定为目标排布区域。
[0017] 可选的,当所述目标排布区域中包含障碍区域时,所述方法还包括:
[0018] 若所述障碍区域位于所述目标排布区域的边界位置时,将所述目标排布区域去除所述障碍区域后得到的排布区域作为目标排布区域;
[0019] 若所述障碍区域不位于所述目标排布区域的边界位置时,将所述目标排布区域根据所述障碍区域的边界进行区域划分,得到子排布区域;将所述子排布区域依次作为目标排布区域。
[0020] 可选的,所述更新所述楼栋信息中待排布楼栋的数量以及所述可排布区域,具体包括:
[0021] 从所述待排布楼栋的数量中减去所述目标楼栋区域对应的楼栋组合中的待排布楼栋的数量,得到更新后的待排布楼栋的数量;
[0022] 从所述楼栋组合中去除所述目标楼栋区域对应的楼栋组合;
[0023] 从所述可排布区域中去除所述目标排布区域,得到更新后的可排布区域;
[0024] 所述更新所述可排布区域,具体包括:
[0025] 从所述可排布区域中去除所述目标排布区域,得到更新后的可排布区域。
[0026] 可选的,所述将所述目标楼栋区域对应的楼栋组合排布至所述目标排布区域,包括:
[0027] 将所述目标楼栋区域对应的楼栋组合放置于所述目标排布区域中,获取所述目标楼栋区域对应楼栋组合中待排布楼栋的位置,将所述待排布楼栋按照优先调整方向进行移动,直至所述待排布楼栋与所述可排布区域的边界距离等于预设边界距离和/或与已排布楼栋之间的距离等于预设楼间距离,确定所述待排布楼栋的排布位置;其中,所述已排布楼栋为已确定排布位置的待排布楼栋。
[0028] 可选的,所述选取所述目标数量的待排布楼栋组成楼栋组合,具体包括:
[0029] 将数量为所述目标数量的待排布楼栋按照不同的排列角度进行排列,分别得到对应于所述目标数量的不同的排列角度的楼栋组合。
[0030] 可选的,所述确定所述楼栋组合对应的楼栋区域,包括:
[0031] 获取所述楼栋组合中待排布楼栋的排列角度,从所述楼栋信息中获取所述楼栋组合中待排布楼栋的长度、宽度以及高度,根据所述待排布楼栋的高度计算所述待排布楼栋之间的距离;根据所述待排布楼栋的长度和宽度、所述待排布楼栋之间的距离、所述楼栋组合中待排布楼栋的数量以及所述待排布楼栋的排列角度,计算所述楼栋组合的长度和宽度,根据所述楼栋组合的长度和宽度确定所述楼栋组合的楼栋区域。
[0032] 可选的,所述匹配条件为楼栋区域的长度小于或者等于所述目标排布区域的长度以及楼栋区域的宽度小于或者等于所述目标排布区域的宽度。
[0033] 第二方面,本申请提供一种楼栋排布装置,所述装置包括:
[0034] 获取单元,用于获取楼栋信息和可排布区域;
[0035] 组合单元,用于获取所述楼栋信息中待排布楼栋的数量,逐一从小于或者等于所述待排布楼栋的数量的正整数中选取目标数量,选取所述目标数量的待排布楼栋组成楼栋组合,确定所述楼栋组合对应的楼栋区域;
[0036] 确定单元,用于根据所述楼栋信息中待排布楼栋的类型,在所述可排布区域中确定目标排布区域;
[0037] 匹配单元,用于将所述目标排布区域与楼栋区域进行匹配;
[0038] 排布单元,用于若具有符合匹配条件的楼栋区域,将符合匹配条件的楼栋区域作为目标楼栋区域,将所述目标楼栋区域对应的楼栋组合排布至所述目标排布区域;
[0039] 更新单元,用于若具有符合匹配条件的楼栋区域,更新所述楼栋信息中待排布楼栋的数量以及所述可排布区域;若不具有符合匹配条件的楼栋区域,更新所述可排布区域;
[0040] 返回所述确定单元,执行在所述可排布区域中确定目标排布区域的步骤以及后续单元对应的步骤,直至所述待排布楼栋的数量为零和/或所述可排布区域中不具有目标排布区域。
[0041] 可选的,所述确定单元,包括:
[0042] 区域参数获取单元,用于获取待排布楼栋的类型对应的预设排布方向,获取预设区域宽度;
[0043] 区域长度获取单元,用于从所述可排布区域的边界,按照所述预设排布方向以所述预设区域宽度作为间隔距离选取可排布区域的区域长度;
[0044] 目标排布区域确定单元,用于按照所述区域长度和预设区域宽度对所述可排布区域进行排布区域的划分;将得到的长度为所述区域长度、宽度为所述预设区域宽度的区域确定为目标排布区域。
[0045] 可选的,当所述目标排布区域中包含障碍区域时,所述确定单元还包括:
[0046] 障碍区域去除单元,用于若所述障碍区域位于所述目标排布区域的边界位置时,将所述目标排布区域去除所述障碍区域后得到的排布区域作为目标排布区域;若所述障碍区域不位于所述目标排布区域的边界位置时,将所述目标排布区域根据所述障碍区域的边界进行区域划分,得到子排布区域;将所述子排布区域依次作为目标排布区域。
[0047] 可选的,所述更新单元,包括:
[0048] 第一更新单元,用于从所述待排布楼栋的数量中减去所述目标楼栋区域对应的楼栋组合中的待排布楼栋的数量,得到更新后的待排布楼栋的数量;
[0049] 从所述楼栋组合中去除所述目标楼栋区域对应的楼栋组合;
[0050] 从所述可排布区域中去除所述目标排布区域,得到更新后的可排布区域;
[0051] 第二更新单元,包括:
[0052] 从所述可排布区域中去除所述目标排布区域,得到更新后的可排布区域。
[0053] 可选的,所述排布单元还用于,将所述目标楼栋区域对应的楼栋组合放置于所述目标排布区域中,获取所述目标楼栋区域对应楼栋组合中待排布楼栋的位置,将所述待排布楼栋按照优先调整方向进行移动,直至所述待排布楼栋与所述可排布区域的边界距离等于预设边界距离和/或与已排布楼栋之间的距离等于预设楼间距离,确定所述待排布楼栋的排布位置;其中,所述已排布楼栋为已确定排布位置的待排布楼栋。
[0054] 可选的,所述组合单元还用于,将数量为所述目标数量的待排布楼栋按照不同的排列角度进行排列,分别得到对应于所述目标数量的不同的排列角度的楼栋组合。
[0055] 可选的,所述组合单元还用于,获取所述楼栋组合中待排布楼栋的排列角度,从所述楼栋信息中获取所述楼栋组合中待排布楼栋的长度、宽度以及高度,根据所述待排布楼栋的高度计算所述待排布楼栋之间的距离;根据所述待排布楼栋的长度和宽度、所述待排布楼栋之间的距离、所述楼栋组合中待排布楼栋的数量以及所述待排布楼栋的排列角度,计算所述楼栋组合的长度和宽度,根据所述楼栋组合的长度和宽度确定所述楼栋组合的楼栋区域。
[0056] 可选的,所述匹配条件为楼栋区域的长度小于或者等于所述目标排布区域的长度以及楼栋区域的宽度小于或者等于所述目标排布区域的宽度。
[0057] 由此可见,本申请实施例具有如下有益效果:
[0058] 本申请实施例提供的楼栋排布的方法,通过获取楼栋信息以及可排布区域,选取目标数量的待排布楼栋组成楼栋组合,确定楼栋组合对应的楼栋区域,确定可排布区域中的目标排布区域,将目标排布区域与楼栋组合的楼栋区域进行匹配,当得到匹配的楼栋区域时,将对应的楼栋组合排布至目标排布区域,排布后进行更新,以便进行下一次的排布,直至待排布楼栋的数量为零或者是可排布区域中不具有目标排布区域,楼栋排布完成。通过将待排布楼栋进行组合,可以得到多种楼栋组合,以及楼栋组合对应的楼栋区域,通过目标排布区域与楼栋区域进行匹配,可以将匹配到的合适的楼栋区域放置与目标排布区域中,由此通过多次目标排布区域的确定以及匹配,完成楼栋的排布。通过将整体的楼栋排布划分为多次楼栋组合的排布,可以进行灵活的排布,可以实现通过对较小区域进行楼栋排布实现整体的楼栋排布,避免了通过人力计算进行楼栋排布导致的效率低下以及不能合理利用区域,提高了楼栋排布的效率。

附图说明

[0059] 图1为本申请实施例提供的一种楼栋排布方法的流程图;
[0060] 图2为本申请实施例提供的一种确定目标排布区域的方法的流程图;
[0061] 图3为本申请实施例提供的一种楼栋排布装置的结构示意图。

具体实施方式

[0062] 为了便于理解和解释本申请实施例提供的技术方案,下面将先对本申请的背景技术进行说明。
[0063] 发明人在对于传统的楼栋排布进行研究后发现,现有的楼栋排布通常是通过建筑人员利用预先确定的建筑模型在地块模型中进行排布,由于建筑模型较多并且在地块模型中排布的方式较多,所以需要具有丰富经验的建筑人员才可以实现较为快速的地块排布。即便如此,由于人力排布的计算能力有限,得到的地块排布方式较少,地块排布的效率较低。
[0064] 基于此,本申请实施例提供一种楼栋排布方法,首先,获取楼栋信息和可排布区域,获取所述楼栋信息中待排布楼栋的数量,逐一从小于或者等于所述待排布楼栋的数量的正整数中选取目标数量,选取所述目标数量的待排布楼栋组成楼栋组合,确定所述楼栋组合对应的楼栋区域;其次,根据所述楼栋信息中待排布楼栋的类型,在所述可排布区域中确定目标排布区域;再次,将目标排布区域与楼栋区域进行匹配,若具有符合匹配条件的楼栋区域,将符合匹配条件的楼栋区域作为目标楼栋区域,将目标楼栋区域对应的楼栋组合排布至目标排布区域,更新楼栋信息中待排布楼栋的数量以及可排布区域,若不具有符合匹配条件的楼栋区域,更新可排布区域;最后,返回执行上述在可排布区域中确定目标排布区域的步骤以及后续步骤,直至待排布楼栋的数量为零和/或可排布区域中不具有目标排布区域。
[0065] 为了便于理解本申请实施例提供的技术方案,下面结合附图对本申请实施例提供的一种楼栋排布方法进行说明。
[0066] 参见图1所示,该图为本申请实施例提供的一种楼栋排布方法的流程图,该方法包括步骤S101‑S105。
[0067] S101:获取楼栋信息和可排布区域。
[0068] 需要说明的是,楼栋信息可以为需要排布的楼栋的基本信息,可以包括待排布楼栋的数量、类型,以及各个待排布楼栋的长度、宽度、高度、层数等信息。其中,待排布楼栋的类型可以分为超高层、高层、塔楼、板楼、联排、独栋或者是底商等,对于每个类型的待排布楼栋还可以根据不同层数、不同单元数等分为不同的种类。本申请实施例中不限定待排布楼栋的数量以及类型,待排布楼栋的数量可以为一个或者是多个,待排布楼栋的类型可以为一种或者多种类型。
[0069] 可排布区域为可以用于排布待排布楼栋的区域。在一种可能的实现方式中,可以获取地块区域的信息以及不可排布区域的信息,通过将地块区域去除不可排布区域后可以得到可排布区域。其中,地块区域为用于进行楼栋排布的整体区域,不可排布区域为地块区域中不能放置楼栋的较大的区域,例如,河流、公路、地铁、已修建的公园等区域。通过将不可排布区域在地块区域中去除,可以得到剩余的可排布区域,不可排布区域可以用于确定可排布区域的边界范围。
[0070] 在一种可能的实现方式中,可以根据获取到的楼栋信息建立待排布楼栋对应的楼栋模型,根据可排布区域建立对应的区域模型,通过将楼栋模型放置在区域模型中来实现对于楼栋的排布。
[0071] 可以理解的是,在获取楼栋信息以及可排布区域后,还可以对楼栋信息以及可排布区域进行验证,判断楼栋信息以及可排布区域是否符合预先设置的建筑规定。
[0072] S102:获取楼栋信息中待排布楼栋的数量,逐一从小于或者等于待排布楼栋的数量的正整数中选取目标数量,选取目标数量的待排布楼栋组成楼栋组合,确定楼栋组合对应的楼栋区域。
[0073] 需要说明的是,逐一选取是指每次选择小于或者等于待排布楼栋的数量的正整数中的任意一个整数作为目标数量,进行楼栋组合的组成。楼栋组合完成后,再进行目标数量的选取,进行楼栋组合的组成,直至所有小于或者等于待排布楼栋的数量的正整数选取完成。
[0074] 目标数量为小于或者等于待排布数量的正整数中的任意整数,从待排布楼栋中选取目标数量的待排布楼栋进行组合,得到对应的楼栋组合。从待排布楼栋中选取一种或者多种类型的待排布楼栋,选取的待排布楼栋的数量为目标数量,将选取的待排布楼栋组成楼栋组合。通过逐一选取目标数量的待排布楼栋组成楼栋组合,可以得到所有可能数量的楼栋组合,以便于直接对楼栋组合进行排布来实现对于所有的待排布楼栋的排布。
[0075] 在一种可能的实现方式中,为了便于排布,楼栋组合是以一行或者是一列的排布方式进行排布的。
[0076] 下面结合示例对上述组成楼栋组合的方法进行说明,在一种可能的实现方式中,待排布楼栋的数量为20栋,目标数量可以为就为1至20的整数中的任意一个正整数,第一次进行楼栋组合的组成时,可以从1至20的整数中选取5作为目标数量,每次选取5个待排布楼栋组成楼栋组合,直至组成所有的可能的楼栋组合。其中,各个待排布楼栋的类型可以相同或者是不同。在目标数量为5的楼栋组合完成后,再从1至20的整数选取除5以外的整数,例如7,作为目标数量,再次进行楼栋组合的组成。直至1至20的整数选取完成后,得到所有的楼栋组合。
[0077] 在得到楼栋组合后,确定楼栋组合对应的楼栋区域,楼栋区域是指楼栋组合排布所需要的区域,确定楼栋组合对应的楼栋区域的具体实施方式请参见下文。
[0078] S103:根据楼栋信息中待排布楼栋的类型,在可排布区域中确定目标排布区域。
[0079] 目标排布区域为本次楼栋排布在可排布区域中所要放置楼栋组合的区域。
[0080] 可以理解的是,根据待排布楼栋的类型,可以确定待排布楼栋的目标排布区域。由于不同的待排布楼栋的类型,在可排布区域中的排布位置不同,所以根据待排布楼栋的类型确定目标排布区域。确定目标排布区域的具体实施方式请参见下文。
[0081] S104:将目标排布区域与楼栋区域进行匹配;若具有符合匹配条件的楼栋区域,将符合匹配条件的楼栋区域作为目标楼栋区域,将目标楼栋区域对应的楼栋组合排布至目标排布区域,更新楼栋信息中待排布楼栋的数量、楼栋组合以及可排布区域;若不具有符合匹配条件的楼栋区域,更新可排布区域。
[0082] 可以理解的是,由于楼栋区域存在着多种,通过将目标排布区域与楼栋区域进行匹配,可以得到放置于目标排布区域中的楼栋区域。其中,匹配条件可以为楼栋区域的长度小于或者等于目标排布区域的长度以及楼栋区域的宽度小于或者等于目标排布区域的宽度。在一种可能的实现方式中,为了实现可排布区域的充分利用,可以将楼栋区域符合上述匹配条件,并且具有待排布楼栋数量最多的楼栋组合排布至目标排布区域。
[0083] 需要说明的是,楼栋组合是由不同数量的待排布楼栋组成的,全部的楼栋组合中至少具有由一栋待排布楼栋组成的楼栋组合,因此,当目标排布区域至少具有放置一个待排布楼栋组成的楼栋组合对应的楼栋区域时,就可以匹配到对应的目标楼栋区域。
[0084] 将目标排布区域匹配得到的楼栋区域作为目标楼栋区域,将目标楼栋区域对应的楼栋组合排布至目标排布区域,具体实施方式请参见下文。
[0085] 当具有与目标排布区域匹配的楼栋区域时,在将目标楼栋区域对应的楼栋组合排布至目标排布区域中后,可以认为本次楼栋组合的排布完成,进行下一次排布,更新楼栋组合以及可排布区域。
[0086] 其中,更新楼栋信息中待排布楼栋的数量以及可排布区域可以为从待排布楼栋的数量中减去目标楼栋区域对应的楼栋组合中的待排布楼栋的数量,得到更新后的待排布楼栋的数量;从楼栋组合中去除目标楼栋区域对应的楼栋组合;从可排布区域中去除目标排布区域,得到更新后的可排布区域。可以理解的是,当将目标楼栋区域对应的楼栋组合排布至目标排布区域后,该楼栋组合的排布完成,目标排布区域被占用,无法排布其他的楼栋组合,所以在更新时减去目标楼栋区域对应的楼栋组合中的待排布楼栋的数量,从楼栋组合中去除目标楼栋区域对应的楼栋组合,以及从可排布区域中去除目标排布区域,得到下次排布的待排布楼栋的数量、楼栋组合以及可排布区域。
[0087] 需要说明的是,若目标排布区域不具有符合匹配条件的楼栋区域,则该目标排布区域不能用于排布楼栋,在下次楼栋组合的排布时需要将该目标排布区域从可排布区域中去除,得到更新后的可排布区域。
[0088] S105:返回执行上述在可排布区域中确定目标排布区域的步骤以及后续步骤,直至待排布楼栋的数量为零和/或可排布区域中不具有目标排布区域。
[0089] 通过返回执行目标排布区域的确定并且执行后续目标排布区域的匹配,可以实现对于可排布区域中所有区域进行楼栋的排布。由于在每次排布后均会进行更新,所以当待排布楼栋的数量为零也就是待排布楼栋排布完成,或者是当可排布区域中不具有目标排布区域,也就是可排布区域中的区域均进行了楼栋组合的排布时,认为楼栋的排布完成。
[0090] 在一种可能的方式中,可以将所有得到的排布结果进行显示,用于建筑人员选择,或者是根据得到的所有的排布结果,进行排布结果对应的排布分数的计算,将较优的排布结果进行显示。
[0091] 由上可知,本申请实施例提供了一种楼栋排布的方法,通过得到所有的待排布楼栋可能组成的楼栋组合,以及可排布区域中的目标排布区域,将目标排布区域与楼栋组合的楼栋区域进行匹配,当得到匹配的楼栋区域时将对应的楼栋组合排布至目标排布区域,排布后进行更新,以便进行下一次的排布,直至待排布楼栋的数量为零或者是可排布区域中不具有目标排布区域,楼栋的排布完成。通过将待排布楼栋进行组合,以及将可排布区域进行目标排布区域的划分,使得将整体的楼栋排布划分为多次楼栋组合的排布,并且由于楼栋组合的数量较多,可以进行灵活的楼栋排布,由此可以实现通过对较小区域进行楼栋排布实现整体的楼栋排布,避免通过人力计算进行楼栋排布,提高了楼栋排布的效率。
[0092] 基于上述S103,本申请实施例提供了一种确定目标排布区域的方法,参见图2所示,该图为本申请实施例提供的一种确定目标排布区域的方法的流程图,该方法包括步骤S201‑S203。
[0093] S201:获取待排布楼栋的类型对应的预设排布方向,获取预设区域宽度。
[0094] 对于不同的待排布楼栋的类型,对应于不同的排布方向,通过获取待排布楼栋的类型,获取对应的预设排布方向。例如,对于高层而言,为了不遮挡其他待排布楼栋的光线,可以将高层排布至可排布区域的北侧,对应的预设排布方向可以为由北向南进行排布。对于独栋而言,需要由南向北进行排布,以得到更好的光线。本申请实施例中不限定待排布楼栋的类型具体的对应的预设排布方向,可以根据排布需要进行设置。
[0095] 可以理解的是,每种待排布楼栋的类型对应的预设排布方向并非是固定的,在一种可能的实现方式中,对于同一种类型的待排布楼栋对应的预设排布方向还与排布次数有关。例如,对于底商而言,需要分布在可排布区域的边界,在第一次进行楼栋组合的排布时可以是由南向北进行排布,第二次进行楼栋组合的排布时,可以是由西向东进行排布,对应的,目标排布区域相对于可排布区域的位置也不相同。通过设置多种预选排布方向,可以实现较为灵活的楼栋排布,得到多种楼栋排布结果。
[0096] 需要说明的是,预设区域宽度是用于获取目标排布区域的区域长度,进行目标排布区域的划分的。在一种可能的实现方式中,预设区域宽度可以为待排布楼栋的长度或者是宽度;在另一种可能的实现方式中,可以将预设区域宽度取较小的数值,此时得到的目标排布区域可以近似为一条线段,匹配条件相应的可以为目标排布区域的长度大于或者是等于楼栋区域的长度。通过将目标排布区域近似为一条线段,可以更好的实现对可排布区域的划分,充分利用可排布区域进行楼栋的排布。
[0097] S202:从可排布区域的边界,按照预设排布方向以预设区域宽度作为间隔距离选取可排布区域的区域长度。
[0098] 本申请实施例不限定获取区域长度的方法,在一种可能的实现方式中,以可排布区域的边界作为起始边,向预设排布方向移动预设区域宽度的距离,移动后的边界所在的直线在可排布区域中的线段的长度可以为区域长度。若边界为曲线,可以选取边界所在位置近似拟合的直线作为新的边界进行移动。
[0099] 在另一种可能的实现方式中,可以在可排布区域外垂直于预设排布方向作一条排布线,将排布线沿着预设排布方向进行移动,在排布线与可排布区域的边界有接触时,将该位置的排布线作为第一排布线;将排布线继续沿着预设排布方向移动预设区域宽度的距离,得到第二排布线,第二排布线在可排布区域中的线段的长度为区域长度,此时的区域长度为可排布区域在预设排布方向的垂直方向上的长度。
[0100] S203:按照区域长度和预设区域宽度对可排布区域进行排布区域的划分;将得到的长度为区域长度、宽度为预设区域宽度的区域确定为目标排布区域。
[0101] 在得到区域长度后,可以按照区域长度和区域宽度进行可排布区域的划分,将长度为区域长度、宽度为预设区域宽度的区域确定为目标排布区域。在一种可能的实现方式中,可以根据用于获取区域长度的直线对可排布区域进行区域划分,将得到的宽度为预设区域宽度的区域作为目标排布区域。
[0102] 需要说明的是,为了便于进行楼栋组合的排布,目标排布区域可以为矩形,也可以为不规则形状。当目标排布区域不为矩形时,目标排布区域的最大宽度可以为预设区域宽度,最大长度可以为区域长度。
[0103] 通过根据待排布楼栋的类型得到对应预设排布方向,根据预设排布方向和预设区域宽度确定区域长度,并根据区域长度和预设区域宽度对可排布区域进行划分,得到目标排布区域。由此可以实现对于可排布区域的划分,便于实现楼栋组合的排布。
[0104] 在另一种目标排布区域的确定方法中,以区域长度和预设区域宽度分别作为长度和宽度的目标排布区域中可能包含障碍区域,目标排布区域的确定方法还可以包括以下步骤:
[0105] 需要说明的是,障碍区域可以为较小的影响待排布楼栋排布的区域,例如,可排布区域中的湖泊以及可排布区域中已经具有的建筑和公共设施等所在的区域,不同于较大范围的不可排布区域。
[0106] 若障碍区域位于目标排布区域的边界位置时,目标排布区域并未被障碍区域划分,去除障碍区域后的目标排布区域仍可以作为一个整体进行楼栋组合的排布的,所以可以将原始确定的目标排布区域去除障碍区域后得到的排布区域作为目标排布区域。
[0107] 若障碍区域不位于目标排布区域的边界位置时,也就是障碍区域位于目标排布区域中时,去除障碍区域的目标排布区域并非是一个整体,不便于放置楼栋组合,所以将目标排布区域根据障碍区域的边界进行区域划分,得到子排布区域。本申请实施例中不限定子排布区域的数量,可以将子排布区域按照一定的顺序依次作为目标排布区域。例如,当原始确定的目标排布区域的中心具有一个小型的湖泊时,将原始确定的目标排布区域沿着湖泊的边缘进行划分,可以得到位于原始确定目标排布区域的左侧和右侧的排布区域,也就是子排布区域,可以先将位于左侧的排布区域作为目标排布区域,进行楼栋区域的匹配,完成后再将位于右侧的排布区域作为目标排布区域进行楼栋区域的匹配。
[0108] 通过上述实施例提供的确定目标排布区域的方法,可以将障碍区域从目标排布区域中去除,合理的利用目标排布区域进行楼栋区域的匹配以及楼栋组合的排布。
[0109] 对于在目标排布区域中排布楼栋组合的排布方法,本申请实施例对上述S102中组成楼栋组合的方法进行进一步的说明。
[0110] 在一种可能的实施方式中,选取目标数量的待排布楼栋组成楼栋组合,可以将数量为目标数量的待排布楼栋按照不同的排列角度进行排列,分别得到对应于目标数量的不同的排列角度的楼栋组合。也就是说,在确定目标数量后先进行目标数量的待排布楼栋的选取,确定该楼栋组合中具有的待排布楼栋后,对待排布楼栋进行不同角度的排列,得到对应目标数量以及不同角度的楼栋组合。
[0111] 可以理解的是,对待排布楼栋的角度进行调整,可以得到对应于不同的楼栋区域的楼栋组合。例如,当一个楼栋组合由三个待排布楼栋组成时,这三个待排布楼栋横向排列、纵向排列、前后交错排列以及以一定角度倾斜排列得到的对应的楼栋组合的排布所需的区域大小均不相同,通过对一定数量的待排布楼栋进行角度的排列,可以得到尽可能多的排列方式对应的楼栋组合,增加了楼栋排布的可能。本申请实施例中不限定对于具有目标数量的待排布楼栋不同角度的排列方式,可以为常用的楼栋排布角度。
[0112] 在确定了每个楼栋组合中待排布楼栋的排列角度后,可以确定楼栋组合对应的楼栋区域,包括以下两个步骤:
[0113] 第一步:获取楼栋组合中待排布楼栋的排列角度,从楼栋信息中获取楼栋组合中待排布楼栋的长度、宽度以及高度,根据待排布楼栋的高度计算待排布楼栋之间的距离。
[0114] 第二步:根据待排布楼栋的长度和宽度、待排布楼栋之间的距离、楼栋组合中待排布楼栋的数量以及待排布楼栋的排列角度,计算楼栋组合的长度和宽度,根据楼栋组合的长度和宽度确定楼栋组合的楼栋区域。
[0115] 可以理解的是,通过每个待排布楼栋的高度可以对应的计算出待排布楼栋之间的楼间距,按照计算得到的楼间距可以得到每个待排布楼栋之间的距离。在结合每个待排布楼栋的长度、宽度以及排列角度,可以计算得到楼栋组合的长度和宽度,根据得到的长度和宽度,可以得到楼栋组合排布时所需的区域,也就是楼栋区域。
[0116] 通过确定楼栋组合以及对应的楼栋区域,可以得到待排布楼栋的多种组合以及对应的排布所需的区域,再通过将目标排布区域与楼栋区域进行匹配,可以得到排布于目标排布区域的楼栋区域,实现对目标排布区域的楼栋排布,最终通过从可排布区域中选取目标排布区域,可以实现对可排布区域的整体的楼栋排布。
[0117] 基于上述对于目标排布区域的确定以及楼栋组合的组成方法的描述,可以实现将楼栋组合排布于目标排布区域中。由于目标排布区域并非与目标楼栋区域完全吻合,楼栋组合中的待排布楼栋可能具有移动的空间。所以,在将楼栋组合排布于目标排布区域中后,可以进一步对该楼栋组合中的待排布楼栋进行位置的调整,将调整后的待排布楼栋进行位置的确定,作为已排布楼栋。
[0118] 在一种可能的实施方式中,将目标楼栋区域对应的楼栋组合排布至目标排布区域,具体的可以包括:将目标楼栋区域对应的楼栋组合放置于目标排布区域中,获取目标楼栋区域对应楼栋组合中待排布楼栋的位置,将待排布楼栋按照优先调整方向进行移动,直至待排布楼栋与可排布区域的边界距离等于预设边界距离和/或与已排布楼栋之间的距离等于预设楼间距离,确定待排布楼栋的排布位置。
[0119] 需要说明的是,优先调整方向可以为指向可排布区域边界的方向或者是具有已排布楼栋的方向,也可以根据预设排布方向进行设置。预设边界距离是指待排布楼栋与可排布区域边界之间的距离,可以根据待排布楼栋的类型以及可排布区域边界的种类进行具体的设置。例如,如果可排布区域的边界对应于公路,楼栋组合中的待排布楼栋是底商时,待排布楼栋与可排布区域的边界可以较近;如果可排布区域的边界对应于河流,楼栋组合中的待排布楼栋与可排布区域的边界可以稍远。预设楼间距离是指待排布楼栋之间的预设的距离,可以根据待排布楼栋的高度、类型等计算得到。
[0120] 可以理解的是,为了充分的利用可排布区域,当待排布楼栋到达可排布区域的边界或者到达了与其他已排布楼栋的边界时,也就是当待排布楼栋与可排布区域的边界距离等于预设边界距离和/或与已排布楼栋之间的距离等于预设楼间距离时,认为不再具有调整的空间,不再对待排布楼栋进行位置的调整,确定其排布位置。其中,已排布楼栋为已确定排布位置的待排布楼栋。
[0121] 需要说明的是,对于待排布楼栋位置的调整可以不限于目标排布区域,在一种可能的实现方式中,待排布楼栋可以调整到除目标排布区域以外的其他的可排布区域中。
[0122] 通过对排布于目标排布区域中的楼栋组合中的待排布楼栋进行进一步的调整,可以充分的利用可排布区域,尽可能多的利用可排布区域中的资源进行楼栋的排布。
[0123] 基于上述方法实施例提供的楼栋排布方法,本申请实施例还提供了一种楼栋排布装置,下面将结合附图对该楼栋排布装置进行说明。
[0124] 参见图3,该图为本申请实施例提供的一种楼栋排布装置的结构示意图。如图3所示,该楼栋排布装置包括:
[0125] 获取单元301,用于获取楼栋信息和可排布区域;
[0126] 组合单元302,用于获取楼栋信息中待排布楼栋的数量,逐一从小于或者等于待排布楼栋的数量的正整数中选取目标数量,选取目标数量的待排布楼栋组成楼栋组合,确定楼栋组合对应的楼栋区域;
[0127] 确定单元303,用于根据楼栋信息中待排布楼栋的类型,在可排布区域中确定目标排布区域;
[0128] 匹配单元304,用于将目标排布区域与楼栋区域进行匹配;
[0129] 排布单元305,用于若具有符合匹配条件的楼栋区域,将符合匹配条件的楼栋区域作为目标楼栋区域,将目标楼栋区域对应的楼栋组合排布至目标排布区域;
[0130] 更新单元306,用于若具有符合匹配条件的楼栋区域,更新楼栋信息中待排布楼栋的数量以及所述可排布区域;若不具有符合匹配条件的楼栋区域,更新所述可排布区域;
[0131] 返回所述确定单元303在所述可排布区域中确定目标排布区域的步骤以及后续单元对应的步骤,直至所述待排布楼栋的数量为零和/或所述可排布区域中不具有目标排布区域。
[0132] 可选的,所述确定单元303,包括:
[0133] 区域参数获取单元,用于获取待排布楼栋的类型对应的预设排布方向,获取预设区域宽度;
[0134] 区域长度获取单元,用于从所述可排布区域的边界,按照所述预设排布方向以所述预设区域宽度作为间隔距离选取可排布区域的区域长度;
[0135] 目标排布区域确定单元,用于按照所述区域长度和预设区域宽度对所述可排布区域进行排布区域的划分;将得到的长度为所述区域长度、宽度为所述预设区域宽度的区域确定为目标排布区域。
[0136] 可选的,当所述目标排布区域中包含障碍区域时,所述确定单元303还包括:
[0137] 障碍区域去除单元,用于若所述障碍区域位于所述目标排布区域的边界位置时,将所述目标排布区域去除所述障碍区域后得到的排布区域作为目标排布区域;若所述障碍区域不位于所述目标排布区域的边界位置时,将所述目标排布区域根据所述障碍区域的边界进行区域划分,得到子排布区域;将所述子排布区域依次作为目标排布区域。
[0138] 可选的,所述更新单元306,包括:
[0139] 第一更新单元,用于从所述待排布楼栋的数量中减去所述目标楼栋区域对应的楼栋组合中的待排布楼栋的数量,得到更新后的待排布楼栋的数量;
[0140] 从所述楼栋组合中去除所述目标楼栋区域对应的楼栋组合;
[0141] 从所述可排布区域中去除所述目标排布区域,得到更新后的可排布区域;
[0142] 第二更新单元,包括:
[0143] 从所述可排布区域中去除目标排布区域,得到更新后的可排布区域。
[0144] 可选的,排布单元305还用于,将目标楼栋区域对应的楼栋组合放置于目标排布区域中,获取目标楼栋区域对应楼栋组合中待排布楼栋的位置,将待排布楼栋按照优先调整方向进行移动,直至待排布楼栋与可排布区域的边界距离等于预设边界距离和/或与已排布楼栋之间的距离等于预设楼间距离,确定待排布楼栋的排布位置;其中,已排布楼栋为以确定排布位置的待排布楼栋。
[0145] 可选的,组合单元302还用于,将数量为目标数量的待排布楼栋按照不同的排列角度进行排列,分别得到对应于目标数量的不同的排列角度的楼栋组合。
[0146] 可选的,组合单元302还用于,获取楼栋组合中待排布楼栋的排列角度,从楼栋信息中获取楼栋组合中待排布楼栋的长度、宽度以及高度,根据待排布楼栋的高度计算待排布楼栋之间的距离;根据待排布楼栋的长度和宽度、待排布楼栋之间的距离、楼栋组合中待排布楼栋的数量以及待排布楼栋的排列角度,计算楼栋组合的长度和宽度,根据楼栋组合的长度和宽度确定楼栋组合的楼栋区域。
[0147] 可选的,匹配条件为楼栋区域的长度小于或者等于目标排布区域的长度以及楼栋区域的宽度小于或者等于目标排布区域的宽度。
[0148] 需要说明的是,本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统或装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
[0149] 应当理解,在本申请中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。
[0150] 还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
[0151] 结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD‑ROM、或技术领域内所公知的任意其它形式的存储介质中。
[0152] 对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。