CN117556512A - 适配复杂数据的楼盘表概览图高效生成方法、介质及设备 - Google Patents
适配复杂数据的楼盘表概览图高效生成方法、介质及设备 Download PDFInfo
- Publication number
- CN117556512A CN117556512A CN202311606806.0A CN202311606806A CN117556512A CN 117556512 A CN117556512 A CN 117556512A CN 202311606806 A CN202311606806 A CN 202311606806A CN 117556512 A CN117556512 A CN 117556512A
- Authority
- CN
- China
- Prior art keywords
- houses
- house
- floor
- layer
- building
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 80
- 238000009877 rendering Methods 0.000 claims abstract description 9
- 239000010410 layer Substances 0.000 claims description 158
- 239000002356 single layer Substances 0.000 claims description 65
- 101100508818 Mus musculus Inpp5k gene Proteins 0.000 claims description 48
- 101100366438 Rattus norvegicus Sphkap gene Proteins 0.000 claims description 48
- 238000004364 calculation method Methods 0.000 claims description 29
- 230000002159 abnormal effect Effects 0.000 claims description 20
- 238000005192 partition Methods 0.000 claims description 18
- 238000003860 storage Methods 0.000 claims description 14
- 238000004590 computer program Methods 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 11
- 230000001788 irregular Effects 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 3
- 230000006978 adaptation Effects 0.000 claims 1
- 238000004422 calculation algorithm Methods 0.000 abstract description 7
- 238000007781 pre-processing Methods 0.000 abstract description 4
- 238000002360 preparation method Methods 0.000 abstract description 3
- 240000007817 Olea europaea Species 0.000 abstract 1
- 238000012545 processing Methods 0.000 description 6
- 239000011229 interlayer Substances 0.000 description 5
- 238000007726 management method Methods 0.000 description 3
- 230000001174 ascending effect Effects 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000013450 outlier detection Methods 0.000 description 1
- -1 parking spaces Substances 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 230000007480 spreading Effects 0.000 description 1
- 238000003892 spreading Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/13—Architectural design, e.g. computer-aided architectural design [CAAD] related to design of buildings, bridges, landscapes, production plants or roads
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/248—Presentation of query results
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F30/00—Computer-aided design [CAD]
- G06F30/10—Geometric CAD
- G06F30/12—Geometric CAD characterised by design entry means specially adapted for CAD, e.g. graphical user interfaces [GUI] specially adapted for CAD
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Geometry (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Mathematical Optimization (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Pure & Applied Mathematics (AREA)
- Evolutionary Computation (AREA)
- Architecture (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Structural Engineering (AREA)
- Civil Engineering (AREA)
- Human Computer Interaction (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种适配复杂数据的楼盘表概览图高效生成方法、介质及设备。本发明首先获取并解析楼盘数据,进行数据预处理与数据准备,通过最大房屋数查找方法、动态规划算法计算出最优折叠展示方式,解决复杂房屋空间排列与房屋数过大的展示问题,通过计算的房屋相对空间位置,计算所有房屋的实际展现坐标,得到楼盘表骨架结构,最终进行前端渲染,展现楼盘表概览图信息。该楼盘表橄榄图可适配不同类型房屋数据,其展示方式也更接近现实,达到住建房管领域能兼容多种复杂房屋数据的高适应、通用化的楼盘表展现能力。
Description
技术领域
本发明属于数据处理领域,具体涉及将复杂数据生成具体楼盘表概览图的方法。
背景技术
楼盘表概览图是指将楼盘中的房屋以幢为单位生成的各单元内房屋二维空间坐落关系的概览图。随着各大城市信息化不断推进,借助楼盘表概览图对于房屋预售、租赁、住保、监管有着重要的作用,特别是在房管行业和房屋销售行业。通过各种复杂的数据来源组合成具体可视化的楼盘表概览图业务显的尤为重要。
然而,现阶段各种楼盘表概览图生成方法对于数据的规范化程度要求很高,只能处理一些正常规范的数据信息,对于测绘数据、不动产数据中的不规则数据无法准确直接生成展示所需的准确楼盘表概览图。特别是当楼盘中单元内仅有部分楼层存在不完全统一的跃层房屋时,由于跃层房屋会跨越多层房屋,因此会导致生成的楼盘表概览图展示错乱。另外,现有生成楼盘表概览图时,对于具备特殊含义的数据比如顶楼、夹层、车库、储物间等房屋类型,往往会在展示时丢失这部分特殊房屋数据。而假如对这些不规则的数据都进行人工处理,会存在展示效率低,计算耗时高的问题,这些问题对于房管业务的管理都有着不好的影响。
发明内容
本发明的目的在于解决复杂楼盘数据中因为跃层等不规则数据的存在所导致的楼盘表概览图难以准确生成的问题,并提供一种适配复杂数据的楼盘表概览图高效生成方法。
本发明所采用的具体技术方案如下:
第一方面,本发明提供了一种适配复杂数据的楼盘表概览图高效生成方法,其包括:
S1、解析原始的楼盘数据,提取其中每间房屋所在的幢、单元、楼层和房屋的房号信息,同时标记所有属于跃层的房屋,进而将整个楼盘中的所有房屋按照幢、单元、楼层和房屋的四级顺序构建空间拓扑关系;
S2、针对楼盘内的每个单元,基于所述空间拓扑关系和房屋占位数查找方法,在考虑单元内单套跃层房屋竖向投影一致性的情况下,确定每一楼层所需的房屋占位数量,进而确定该单元的单层房屋占位数,所述单层房屋占位数为楼盘表概览图中一个单元所有楼层的房屋不折叠展示所需的最小房屋占位数量;同时将每个单元内的每套跃层房屋分别分割为一个区块,再以跃层房屋和单元侧边界为分割边界,将每个楼层中处于任意两个相邻分割边界之间的连续正常房屋分割为一个区块;
S3、针对楼盘中的每个单元,根据用户配置确定单层横向展示空间数,且单层横向展示空间数不小于该单元内楼层区块数最大值,若用户未配置单层横向展示空间数,则以该单元的所述单层房屋占位数作为单层横向展示空间数;再基于确定的单层横向展示空间数,在垂直方向上不折叠跃层房屋但允许折叠正常房屋的准则下,规划这个单元中所有房屋在楼盘表概览图中的最优展示方式,并计算每个单元内各个房屋的相对位置,形成楼盘中的每个单元的房屋逻辑展示规划;
S4、按照所述房屋逻辑展示规划,以幢为单位,将这一幢中所有单元视为一个绘制整体,计算这一幢中每一个楼层内每套房屋的展示空间在楼盘表概览图中的实际坐标,进而得到楼盘表骨架结构;
S5、根据S4得到的楼盘表骨架结构,绘制并渲染形成所需的楼盘表概览图。
作为上述第一方面的优选,所述S2中,针对楼盘内的每个单元,基于所述空间拓扑关系和房屋占位数查找方法确定该单元的单层房屋占位数的具体方法为:
基于所述空间拓扑关系,查找楼盘内当前单元中的所有房屋信息,判断当前单元内是否存在跃层房屋以及楼层房号数值是否规律;
若当前单元内不存在跃层房屋,则统计每一楼层的房屋数,取所有楼层的房屋数最大值作为当前单元的单层房屋占位数;
若当前单元内存在跃层房屋且房号数值规律,则从每一层房屋的房号中提取出代表每个房屋在这一层中所处位置的后缀序号,然后采用投影方法将当前单元内每一层房屋的后缀序号分别投影至位置记录序列中,由位置记录序列记录当前单元在每个位置的垂直方向是否存在房屋,若当前单元内任意一层楼层在一个位置存在房屋,则位置记录序列中对应位置的序列值被设置为第一标签值,若当前单元内所有楼层在一个位置均不存在房屋,则位置记录序列中对应位置的序列值被设置为第二标签值;统计投影后的位置记录序列中第一标签值的数量,作为当前单元的单层房屋占位数;
若当前单元内存在跃层房屋且房号数值不规律,则从中提取所有跃层房屋和正常房屋,将当前单元内所有存在跃层的楼层号进行有序排列形成跃层序列,再从跃层序列中识别出所有的连续跃层子序列,每一条连续跃层子序列均为一条连续的且每一层均具有跃层的楼层号序列;然后从当前单元的最下面一层开始,依次向上逐层计算每一楼层的房屋占位数,且在逐层计算过程中,若当前楼层不在所述连续跃层子序列中,则以当前楼层中含有的房屋数作为房屋占位数,若当前楼层在所述连续跃层子序列中,则以递归查询的方式依次从左侧向右侧查询当前楼层中每一套跃层房屋的左侧房屋占位数,同时以递归查询的方式依次从右侧向左侧查询当前楼层中每一套跃层房屋的右侧房屋占位数,其中,以递归的方式查询每一套跃层房屋的左侧或右侧房屋占位数时,需要考虑单元内单套跃层房屋竖向投影的一致性,同一套跃层房屋在不同楼层中的一侧房屋数不一致时需取最大值;递归查询完毕后,针对位于所述连续跃层子序列中的当前楼层,将每套跃层房屋的左侧房屋占位数与右侧房屋占位数求和后再加1并取最大值作为当前楼层的房屋占位数;当获得当前单元内所有楼层的房屋占位数后,取最大值作为当前单元的单层房屋占位数。
作为上述第一方面的优选,所述S21中,以左侧或右侧分别为计算侧,以递归查询的方式查询当前楼层中每一套跃层房屋的计算侧房屋占位数时,对于第p层第i套被查询的跃层房屋其计算侧房屋占位数/>计算方程式如下:
其中:表示在第p层中跃层房屋/>的计算侧房屋占位数,表示在递归查询过程中第p层内前一套跃层房屋/>的计算侧房屋占位数,若第p层内不存在前一套跃层房屋则以楼层计算侧边界作为/>且表示计算第p层中位于/>的计算侧边界和/>的计算侧边界之间的实际房屋数;/>表示跃层房屋/>所在的所有楼层集合。
作为上述第一方面的优选,所述S3中,针对楼盘中的每个单元,形成当前单元的房屋逻辑展示规划的方法为:
S31、获取当前单元的分区块信息,其中当前单元内的每套跃层房屋整体作为一个在单元中处于相同垂直投影位置的区块,不存在跃层房屋的楼层整体作为一个区块,而对于存在跃层房屋的楼层,需以跃层房屋和单元侧边界作为分割边界,查找每个楼层中所有相邻的分割边界组合,将每个楼层中位于每一组相邻分割边界之间的所有房屋分别作为一个区块;每个区块内记录由区块内包含的房屋数量、每套房屋的信息以及每套房屋的位置索引,用于楼盘表的房屋位置规划;
S32、判断用户针对当前单元是否配置了单层横向展示空间数,若已配置则将用户配置数值作为当前单元的单层横向展示空间数,若未配置,则以S2中计算得到的当前单元的所述单层房屋占位数作为当前单元的单层横向展示空间数;且若用户配置的单层横向展示空间数如果小于单元内各楼层所含区块数最大值,则需要将当前单元的单层横向展示空间数替换为这个区块数最大值;
S33、依次遍历当前单元的每一楼层,为当前楼层中的所有区块分配横向展示空间,其中每套跃层房屋所在的区块在当前楼层中单独分配一个横向展示空间,当前楼层中其余正常房屋对应的每个区块分配至少1个横向展示空间,且分配到的横向展示空间数量与区块内的房屋占位数量占比相关;
S34、根据当前单元内每个区块分配到的横向展示空间,将横向展示空间以均匀度最大化的原则进一步分配给区块内的所有房屋,使每个房屋获得一个展示子空间;且在分配展示子空间时,如果区块内的房屋数量未超过该区块分配到的横向展示空间数量,则所有展示子空间直接沿横向均匀排布而无需竖向折叠,否则需要将该区块分配到的横向展示空间在纵向进行分割形成多层堆叠的展示子空间进而使区块内的房屋竖向折叠展示;整个当前单元中,每一套跃层房屋在不同层中分配到的展示子空间在竖向上投影位置必须保持一致;
S35、完成楼盘内每个单元中全部楼层的展示空间分配后,记录每一幢每一单元中各房屋所分配的展示子空间的位置及大小信息,形成楼盘中每个单元的房屋逻辑展示规划。
作为上述第一方面的优选,所述S4中,得到楼盘表骨架结构的方法如下:
S41、针对楼盘中的每一幢房屋,将所有单元沿横向连续拼接,根据房屋逻辑展示规划中每个横向展示空间在图像中的实际尺寸,确定整幢房屋内各单元的绘图边界坐标;
S42、针对楼盘中的每一个单元,在该单元的绘图边界坐标内按照从左到右、从下到上的顺序,计算每套房屋的展示空间在楼盘表概览图中的实际坐标,最后将整个楼盘中幢、单元、楼层和房屋在楼盘表概览图中的实际坐标输出为楼盘表骨架结构。
作为上述第一方面的优选,所述楼盘表骨架结构采用Json格式文件,并通过D3.js进行绘制和渲染,形成在浏览器中前端展示的最终楼盘表概览图。
作为上述第一方面的优选,所述的楼盘表概览图中,幢、单元、楼层、房屋各自需要关联属性信息,供前端直接显示或者交互时显示。
作为上述第一方面的优选,所述S1中,需要识别除了正常房屋和跃层房屋之外的特殊类型房屋和异常数据房屋,所述特殊类型房屋包括顶层房屋、空层房屋、夹层房屋、阁楼、储物间和车位,所述异常数据房屋为无法被归类到正常房屋、跃层房屋和特殊类型房屋的房屋,或者在原始楼盘数据中信息不规范的房屋;针对异常数据房屋和每一种类型的特殊类型房屋,需要在楼盘表概览图中相应房屋所在的单元中预设一个指定的空间区域,将相应房屋信息单独展示在这个空间区域中。
第二方面,本发明提供了一种计算机可读存储介质,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如上述第一方面任一方案所述的适配复杂数据的楼盘表概览图高效生成方法。
第三方面,本发明提供了一种计算机电子设备,其包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现如上述第一方面任一方案所述的适配复杂数据的楼盘表概览图高效生成方法。
本发明相对于现有技术而言,具有以下有益效果:
附图说明
图1为一个示例中的一张基于规则的楼盘数据生成的楼盘表概览图;
图2为一个示例中的一张具有不完全统一的跃层房屋的楼盘表概览图;
图3为本发明中适配复杂数据的楼盘表概览图高效生成方法的步骤示意图;
图4为一个示例中的楼盘表概览图局部示意图;
图5为本发明实施例中的楼盘表概览图生成的第一个阶段流程图;
图6为本发明实施例中的楼盘表概览图生成的第二个阶段流程图;
图7为本发明实施例中的楼盘表概览图生成的第三个阶段流程图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图对本发明的具体实施方式做详细的说明。在下面的描述中阐述了很多具体细节以便于充分理解本发明。但是本发明能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本发明内涵的情况下做类似改进,因此本发明不受下面公开的具体实施例的限制。本发明各个实施例中的技术特征在没有相互冲突的前提下,均可进行相应组合。
在本发明的描述中,需要理解的是,术语“第一”、“第二”仅用于区分描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。
为了便于描述,本发明中定义正常房屋为仅跨越一个标准楼层的房屋,而跃层房屋为跨越两个或两个以上标准楼层的房屋。本发明所说的楼盘数据,是指记录有楼盘内所有房屋详细信息的数据,其数据来源可以是括rpc数据、数据库数据、自定义切入数据、配置文件等。
如图1所示,展示了一张基于规则的楼盘数据生成的楼盘表概览图,其中每一层都具有相同数量的正常房屋,此类楼盘表概览图中可以很方便地将每一层房屋进行排布。然而,如图2所示,展示了一张具有不完全统一的跃层房屋的楼盘表概览图,此楼盘对应的房屋数据十分复杂,不仅具有跃层房屋,而且不同楼层中的房屋数量可能还存在不一致的地方。此类楼盘数据中,不能简单地将每一层房屋进行排布,需要考虑跃层房屋的整体性,不能因为每一楼层中房屋数量不同而将跃层房屋处于不同楼层中的房间进行分拆,也不能在楼盘表概览图中以不同的宽度来展示具有不同房屋数的不同楼层。本发明中针对存在跃层等非正常房屋和楼层中房屋数量不同的复杂楼盘数据,基于房屋数据分析识别归类不同类别的房屋,实现规则或不规则房屋数据所在幢、单元、层、跃层等数据的确定,再通过投影法和贪心算法对每个单元进行单层房屋占位数的计算,避免因复杂的房屋位置而错乱展示,根据实际的房屋的逻辑位置需求以及特殊占用位置分析通过最优的折叠算法优化房屋展示,最后根据各个部分的房屋进行动态分布运算生成逻辑位置坐标,用于前端的渲染显示。
如图3所示,在本发明的一个较佳实施例中,提供了一种适配复杂数据的楼盘表概览图高效生成方法,其包括:
S1、解析原始的楼盘数据,提取其中每间房屋所在的幢、单元、楼层和房屋的房号信息,同时标记所有属于跃层的房屋,进而将整个楼盘中的所有房屋按照幢、单元、楼层和房屋的四级顺序构建空间拓扑关系。
在本发明的实施例中,原始的楼盘数据如果存在大量的异常数据、缺失数据或者不规范数据,可以预先进行一定的数据预处理和规范化。另外,最终构建空间拓扑关系中,可以采用应用对象冗余方式关联幢Building、单元Unit、楼层Floor、房屋Room之间的空间坐落关系。
S2、针对楼盘内的每个单元,基于所述空间拓扑关系和房屋占位数查找方法,在考虑单元内单套跃层房屋竖向投影一致性的情况下,确定每一楼层所需的房屋占位数量,进而确定该单元的单层房屋占位数,所述单层房屋占位数为楼盘表概览图中一个单元所有楼层的房屋不折叠展示所需的最小房屋占位数量;同时将每个单元内的每套跃层房屋分别分割为一个区块,再以跃层房屋和单元侧边界为分割边界,将每个楼层中处于任意两个相邻分割边界之间的连续正常房屋分割为一个区块。
需要说明的是,本发明中计算楼盘中每个单元的单层房屋占位数,是为了解决单元中存在跃层房屋或者不同楼层存在不同房屋数量的数据不规则情况,使得不同情况的楼层都能生成规范的楼盘表概览图,避免同一套跃层房屋被错位绘制,保证即使不同楼层的房屋数不同也能够在楼盘表概览图保持同一单元中不同楼层具有相同的侧边界。
在本发明的实施例中,上述步骤S2中,针对楼盘内的每个单元,基于空间拓扑关系和房屋占位数查找方法确定该单元的单层房屋占位数的具体方法为:
基于所述空间拓扑关系,查找楼盘内当前单元中的所有房屋信息,判断当前单元内是否存在跃层房屋以及楼层房号数值是否规律,并根据判断结果分别执行不同的操作,若当前单元内不存在跃层房屋则可直接按S211计算,若当前单元内存在跃层房屋且房号数值规律,则可按照S212采用投影法计算当前单元的单层房屋占位数,否则,按照S213通过最大房屋数查找方法(即房屋占位数查找方法)确定当前单元的单层房屋占位数。下面分别对S211~S213的具体实现方式进行介绍。
需要说明的是,本发明中判断当前单元的楼层房号数值是否规律的判断原则为:以当前单元中每个楼层中所有房号的后缀序号为第一序号集合,以每个楼层下方所有楼层中所有房号的后缀序号为第二序号集合,遍历当前单元中的每个楼层,若每个楼层均满足该楼层对应的第一序号集合和第二序号集合中任意一个集合为另一个集合的子集,则视为当前单元的楼层房号数值规律,否则视为不规律。
S211、若当前单元内不存在跃层房屋,则统计每一楼层的房屋数,取所有楼层的房屋数最大值作为当前单元的单层房屋占位数;
S212、若当前单元内存在跃层房屋且房号数值规律,则从每一层房屋的房号中提取出代表每个房屋在这一层中所处位置的后缀序号,然后采用投影方法将当前单元内每一层房屋的后缀序号分别投影至位置记录序列中,由位置记录序列记录当前单元在每个位置的垂直方向是否存在房屋,若当前单元内任意一层楼层在一个位置存在房屋,则位置记录序列中对应位置的序列值被设置为第一标签值,若当前单元内所有楼层在一个位置均不存在房屋,则位置记录序列中对应位置的序列值被设置为第二标签值;统计投影后的位置记录序列中第一标签值的数量,作为当前单元的单层房屋占位数。
举例而言,一个单元中,第1层房屋的房号分别为101、102和103,第2层房屋的房号分别为201、202、203和204,第3层房屋的房号分别为301、302,那么第1层房屋的房号后缀序号分别为1、2和3,第2层房屋的房号后缀序号分别为1、2、3和4,第3层房屋的房号后缀序号分别为1、2,将这些房号后缀序号投影至位置记录序列中,位置记录序列的1位置、2位置、3位置和4位置均有值,代表存在楼层中相应位置有房屋,序列值可赋值为1,而5以及5以上位置没有值,代表所有楼层中相应位置都没有房屋。位置记录序列中序列值为1的位置数量为4个,由此当前单元的单层房屋占位数记为4。
S213、若当前单元内存在跃层房屋但房号数值不规律,则从中提取所有跃层房屋和正常房屋,将当前单元内所有存在跃层的楼层号进行有序排列形成跃层序列,再从跃层序列中识别出所有的连续跃层子序列,每一条连续跃层子序列均为一条连续的且每一层均具有跃层的楼层号序列;然后从当前单元的最下面一层开始,依次向上逐层计算每一楼层的房屋占位数,且在逐层计算过程中,若当前楼层不在所述连续跃层子序列中,则以当前楼层中含有的房屋数作为房屋占位数,若当前楼层在所述连续跃层子序列中,则以递归查询的方式依次从左侧向右侧查询当前楼层中每一套跃层房屋的左侧房屋占位数,同时以递归查询的方式依次从右侧向左侧查询当前楼层中每一套跃层房屋的右侧房屋占位数,其中,以递归的方式查询每一套跃层房屋的左侧或右侧房屋占位数时,需要考虑单元内单套跃层房屋竖向投影的一致性,同一套跃层房屋在不同楼层中的一侧房屋数不一致时需取最大值;递归查询完毕后,将当前楼层中每一套跃层房屋的左侧房屋占位数与右侧房屋占位数求和后再加1作为这一套跃层房屋的房屋占位数计算值,从当前楼层的所有跃层房屋的房屋占位数计算值中取最大值,作为当前楼层的房屋占位数。
在本发明的实施例中,上述步骤S21中,以左侧或右侧分别为计算侧,以递归查询的方式查询当前楼层中每一套跃层房屋的计算侧房屋占位数时,对于第p层第i套被查询的跃层房屋其计算侧房屋占位数/>计算方程式如下:
其中:表示在第p层中跃层房屋/>的计算侧房屋占位数,表示在递归查询过程中(左侧和右侧的递归查询过程是分别独立的)第p层内前一套跃层房屋/>的计算侧房屋占位数,若第p层内不存在前一套跃层房屋则以楼层计算侧边界(计算左侧房屋占位数则选择楼层的左侧边界,而计算右侧房屋占位数则选择楼层的右侧边界)作为/>且/>表示计算第p层中位于/>的计算侧边界和/>的计算侧边界之间的实际房屋数;/>表示跃层房屋/>所在的所有楼层集合。
需要注意的是,中,计算的是/>的计算侧边界和/>之间的实际房屋数,一套跃层房屋的计算侧边界是指这套跃层房屋的计算侧(左侧或右侧)房屋边界,因此其实际包含了跃层房屋/>自身,但不跃层房屋/>自身,即使/>之间是相邻的,/>也为1。但是如果第p层内不存在前一套跃层房屋,以楼层计算侧边界作为/>那么楼层计算侧边界是至这一楼层的单元边界,它是不算房屋的,此时/>为0。
在上述步骤S213中,当获得当前单元内所有楼层的房屋占位数后,取最大值作为当前单元的单层房屋占位数。
在本发明中,以递归查询的方式依次从左侧向右侧查询当前楼层中每一套跃层房屋的左侧房屋占位数,其目的是为了保证在绘制楼盘表概览图时一套跃层房屋在不同楼层中的房屋占位位置可以处在相同的垂直投影上,而不会被错开。举例而言,如图4所示,在这个单元中第1层具有3个正常房屋,房号分别为101、102和103,第2层具有1套正常房屋和1套跃层房屋,房号分别为201和204,而跃层房屋204同时跨越第2层和第3层,第3层中除了跃层房屋204之外,还具有房号分别为301、302和303的3套正常房屋和另一套房号为305的跃层房屋,跃层房屋305同时跨越第3层和第4层,第4层中除了跃层房屋305之外,还具有另一套房号为406的跃层房屋,跃层房屋406同时跨越第4层和第5层。假如不按照S213的最大房屋数查找方法,直接以每一层的实际房屋数量来确定每一层绘图时的房屋占位数,那么第1层的房屋占位数为3,第2层的房屋占位数为2,第3层的房屋占位数为5,第四层的房屋占位数为2,第5层的房屋占位数为1。这种做法会导致不同楼层的房屋占位数不同,整体出图效果中不同楼层边界参差不齐,跃层单元也会出现错位。
因此,本发明中将按照S213的最大房屋数查找方法,来确定这个单元中每一楼层的房屋占位数。继续以图4为例,最大房屋数查找方法执行时,每一条连续跃层子序列的上一层楼层以及下一层楼层要么是单元边界要么不具有跃层房屋,因此这个单元中楼层{2,3,4}会被识别为一条连续跃层子序列。然后从当前单元的最下面第1层开始,依次向上逐层计算每一楼层的房屋占位数,第1层不在连续跃层子序列中,则以其中含有的房屋数量作为房屋占位数,而第2层在连续跃层子序列中,需要从左侧向右侧查找到其中的跃层房屋204并确定跃层房屋204的左侧房屋占位数,同时还需要从右侧向左侧查找到其中的跃层房屋204并确定跃层房屋204的右侧房屋占位数。如前所述,以递归的方式查询一套跃层房屋的左侧或右侧房屋占位数时,需要考虑单元内单套跃层房屋竖向投影的一致性,同一套跃层房屋在不同楼层中的一侧房屋数不一致时需取最大值。而跃层房屋204跨越同时跨越第2层和第3层,其在第2层中与楼层左侧边界之间的左侧房屋占位数为1,但在第3层中与楼层左侧边界之间的左侧房屋占位数为3,因此需取最大值3作为跃层房屋204的左侧房屋占位数;同理,亦可得到跃层房屋204的右侧房屋占位数。而继续计算第3层的房屋占位数时,需要从左侧向右侧查找到其中的跃层房屋204以及跃层房屋305并确定跃层房屋204和跃层房屋305的左侧房屋占位数,同时还需要从右侧向左侧查找到其中的跃层房屋305和跃层房屋204并确定跃层房屋305和跃层房屋204的右侧房屋占位数。跃层房屋204的左侧房屋占位数和右侧房屋占位数在上一层已经计算完毕无需计算,而跃层房屋305的左侧房屋占位数需要继续计算,而且计算时由于跃层房屋305同时跨越第3层和第4层,其在第3层存在递归查询过程中的前一套跃层房屋204,因此需要考虑前一套跃层房屋204的左侧房屋占位数,因此跃层房屋204和跃层房屋305之间不存在房屋,因此roomCount=1,跃层房屋305在第3层的左侧房屋占位数为4,跃层房屋305在第4层的左侧房屋占位数为0,由此取最大值后跃层房屋305的左侧房屋占位数为4。依此类推,即可得到每一套跃层房屋的左侧房屋占位数与右侧房屋占位数。递归查询完毕后,将所有跃层房屋的左侧房屋占位数与右侧房屋占位数求和后再加1(1代表这套跃层房屋自身)并取最大值作为当前楼层的房屋占位数。
S3、针对楼盘中的每个单元,根据用户配置确定单层横向展示空间数,且单层横向展示空间数不小于该单元内楼层区块数最大值,若用户未配置单层横向展示空间数,则以该单元的所述单层房屋占位数作为单层横向展示空间数;再基于确定的单层横向展示空间数,在垂直方向上不折叠跃层房屋但允许折叠正常房屋的准则下,规划这个单元中所有房屋在楼盘表概览图中的最优展示方式,并计算每个单元内各个房屋的相对位置,形成楼盘中的每个单元的房屋逻辑展示规划。
需要说明的是,本发明中一个单元的单层横向展示空间数,是指在最终绘制楼盘表概览图时,这个单元内每个楼层沿水平方向需要展示的房屋空间数量。但这个单层横向展示空间数仅仅用来表示横向的相对展示空间,并非实际展示的房屋数,其可能等于实际展示的房屋数,也可能小于实际展示的房屋数,只有在单层横向展示空间数等于楼层中实际展示的房屋数时,每个房屋才被刚好分配至一个展示空间。
在本发明的实施例中,上述步骤S3中,针对楼盘中的每个单元,形成当前单元的房屋逻辑展示规划的方法为:
S31、获取当前单元的分区块信息,其中当前单元内的每套跃层房屋整体作为一个在单元中处于相同垂直投影位置的区块,不存在跃层房屋的楼层整体作为一个区块,而对于存在跃层房屋的楼层,需以跃层房屋和单元侧边界作为分割边界,查找每个楼层中所有相邻的分割边界组合,将每个楼层中位于每一组相邻分割边界之间的所有房屋分别作为一个区块;每个区块内记录由区块内包含的房屋数量、每套房屋的信息以及每套房屋的位置索引,用于楼盘表的房屋位置规划。
S32、判断用户针对当前单元是否配置了单层横向展示空间数,若已配置则将用户配置数值作为当前单元的单层横向展示空间数,若未配置,则以S2中计算得到的当前单元的所述单层房屋占位数作为当前单元的单层横向展示空间数;且若用户配置的单层横向展示空间数如果小于单元内各楼层所含区块数最大值,则需要将当前单元的单层横向展示空间数替换为这个区块数最大值。
S33、依次遍历当前单元的每一楼层,为当前楼层中的所有区块分配横向展示空间,其中每套跃层房屋所在的区块在当前楼层中单独分配一个横向展示空间,当前楼层中其余正常房屋对应的每个区块分配至少1个横向展示空间,且分配到的横向展示空间数量与区块内的房屋占位数量占比相关(正相关)。
S34、根据当前单元内每个区块分配到的横向展示空间,将横向展示空间以均匀度最大化的原则进一步分配给区块内的所有房屋,使每个房屋获得一个展示子空间;且在分配展示子空间时,如果区块内的房屋数量未超过该区块分配到的横向展示空间数量,则所有展示子空间直接沿横向均匀排布而无需竖向折叠,否则需要将该区块分配到的横向展示空间在纵向进行分割形成多层堆叠的展示子空间进而使区块内的房屋竖向折叠展示;整个当前单元中,每一套跃层房屋在不同层中分配到的展示子空间在竖向上投影位置必须保持一致。
S35、完成楼盘内每个单元中全部楼层的展示空间分配后,记录每一幢每一单元中各房屋所分配的展示子空间的位置及大小信息,形成楼盘中每个单元的房屋逻辑展示规划。
S4、按照所述房屋逻辑展示规划,以幢为单位,将这一幢中所有单元视为一个绘制整体,计算这一幢中每一个楼层内每套房屋的展示空间在楼盘表概览图中的实际坐标,进而得到楼盘表骨架结构。
在本发明的实施例中,上述步骤S4中,得到楼盘表骨架结构的方法如下:
S41、针对楼盘中的每一幢房屋,将所有单元沿横向连续拼接,根据房屋逻辑展示规划中每个横向展示空间在图像中的实际尺寸,确定整幢房屋内各单元的绘图边界坐标;
S42、针对楼盘中的每一个单元,在该单元的绘图边界坐标内按照从左到右、从下到上的顺序,计算每套房屋的展示空间在楼盘表概览图中的实际坐标,最后将整个楼盘中幢、单元、楼层和房屋在楼盘表概览图中的实际坐标输出为楼盘表骨架结构。
S5、根据S4得到的楼盘表骨架结构,绘制并渲染形成所需的楼盘表概览图。
在本发明的实施例中,上述楼盘表骨架结构可采用Json格式文件,以便于在S5中通过D3.js进行绘制和渲染,形成在浏览器中前端展示的最终楼盘表概览图。
另外,在最终前端展示的楼盘表概览图中,可以根据实际的业务需要,使幢、单元、楼层、房屋各自需要关联属性信息,供前端直接显示或者交互时显示。
另外在本发明的另一实施例中,如果原始的楼盘数据中还存在除了跃层之外的其他特殊房屋或者异常数据,除了直接删除不显示这种做法之外,也可以将其经过特殊处理后显示。具体做法是,在上述步骤S1中,需要识别除了正常房屋和跃层房屋之外的特殊类型房屋和异常数据房屋,其中特殊类型房屋包括顶层房屋、空层房屋、夹层房屋、阁楼、储物间和车位,而异常数据房屋为无法被归类到正常房屋、跃层房屋和特殊类型房屋的房屋,或者在原始楼盘数据中信息不规范的房屋。针对异常数据房屋和每一种类型的特殊类型房屋,需要在楼盘表概览图中相应房屋所在的单元中预设一个指定的空间区域,将相应房屋信息单独展示在这个空间区域中。例如缺失房号或者房号无法识别为数字的异常数据房屋,可以在所在单元顶部或者底部单独设置一个独立区域来显示。而顶层房屋、阁楼、夹层房屋之类的特殊类型房屋则可以按照其在单元中常见的空间位置设置一个独立区域来显示。
下面通过一个具体的示例,来展示上述S1~S5所述的适配复杂数据的楼盘表概览图高效生成方法的具体实现。
实施例
在本实施例中,适配复杂数据的楼盘表概览图高效生成方法的流程可分为三个连续的阶段,具体流程图如图5、图6和图7所示。整体生成方法的具体过程如下:
步骤1、获取并解析楼盘数据,进行数据预处理与数据准备。楼盘数据的获取来源可包括rpc数据、数据库数据、自定义切入数据、配置文件等多种方式输入,本发明均可适配,不作限制。
本实施例中,步骤1中的数据预处理与数据准备,包括不同房屋类型的识别与归类、特殊类型房屋所在楼层位置的计算、幢-单元-楼层-房屋之间的关系构建,具体为:
步骤11、解析楼盘数据信息,构建幢、单元、楼层、房屋数对象;
步骤12、应用正则匹配与离群点检测算法,过滤异常数据。所谓异常数据是无法识别房屋类型信息和楼层信息,在楼盘表可视化中使用独立区域来展示,异常数据的判断方法具体为:
1)利用正则匹配初步判断,筛选出无法通过匹配的数据。设计的正则匹配规则为^[\u4E00-\u9FA5A-Za-z0-9_\-()()]+$;
2)根据房屋属性相似性进行离群点检测,对于1)中无法通过正则匹配的数据进行聚类到某一簇,则后续可以根据所在类簇的房屋属性识别房屋类型和楼层信息;若数据为离群点,即数据与任何类簇的相似性距离都超过阈值,则被认为是异常数据。
步骤13、进一步识别不同房屋类型的数据,标记特殊房屋类型数据;
所述房屋类型包括正常房屋、特殊类型房屋和异常层,步骤12中得到的异常数据对应异常层,特殊房屋的类型包括顶层、车位、夹层、空层、阁楼、底层、储物间、跃层、跳层,正常房屋为仅跨越一层标准楼层的房屋。
在本实施例中,特殊房屋的类型可分别判断如下:
1)根据房屋属性语义特征进行识别,包括顶层、车位、夹层、空层、阁楼、底层、储物间等类型;
2)根据房屋的楼层结构进行识别,包括跃层和跳层。跃层为房屋占上下多个连续层,跳层为房屋占上下多个不连续层。跳层、跃层都是占用多个层,处理方式相似,后续统一用跃层指代。
步骤14、规范化处理跃层房屋所在层信息,包括去除重复层号、连续层识别、层号排序等,具体如下:
1)获取跃层房屋的原始楼层号序列F{l1,l2,…,li-lj,…},展开连续层li-lj为li,li+1,li+2,…,lj,去除重复层号,按楼层号升序排列,得到处理后的楼层号序列F′{l′1,l′2,…,l′i,l′i+1,..},min(F)≤l′1<l′2<l′i≤max(F);
2)识别楼层序列F′中所有的连续层l′i,l′i+1,…,l′i+k,合并连续层l′i-l′i+k,得到最终序列F″{l″1,l″2,…,l″i-l″i+k,…},min(F)<l″1<l″2<l″i<l″i+k≤max(F);
遍历楼层序列F′,通过判断相邻层号是否连续来识别所有的连续层子序列。连续性判断方式如下,标签值tag为True表示相邻层号连续,False表示相邻层是连续层不是连续层。
步骤15、将整个楼盘中的所有房屋按照幢、单元、楼层和房屋的四级顺序构建空间拓扑关系。在本实施例中,可应用对象冗余方式关联幢Building、单元Unit、楼层Floor、房屋Room之间的空间坐落关系,具体为:
定义幢、单元、楼层、房屋的数据结构如下:
1)幢:Building(name,List<Unit>,List<Floor>,List<Room>,others);
2)单元:Unit(name,List<Building>,List<Floor>,List<Room>,others);
3)楼层:Floor(name,List<Building>,List<Unit>,List<Room>,others);
4)房屋:Room(name,List<Building>,List<Unit>,List<Floor>,others);
即在幢、单元、楼层、房屋对象中,分别记录其所在幢、单元、楼层、房屋的对象信息,属性name表示序号属性,others表示其他属性。
步骤2、应用最大房屋数查找方法(即房屋占位数查找方法),基于空间拓扑关系,得到各幢各单元的单层房屋占位数,亦可记作实际最大房屋数。
步骤3、根据用户输入的最大房屋数和步骤2中得到的实际最大房屋数据,规划最优折叠展示方式并计算各个房屋的相对位置,其特征在于,解决跃层等复杂房屋空间排列与房屋数过大的展示问题;
步骤4、根据步骤3中计算的房屋相对位置,计算所有房屋实际坐标,得到楼盘表骨架结构;
步骤5、根据步骤4的房屋坐标信息,前端通过d3绘制楼盘表,结合步骤1中的房屋属性与具体业务需求进行分类渲染,展现具体逻辑和业务的楼盘表概览图信息。
在本实施例中,上述步骤2中的最大房屋数查找算法,包括如下步骤:
步骤21、判断房号是否规律,若房号规律,则采用投影法计算实际最大房屋数,否则,通过查询每层的相对最大房屋数,取最大值得到实际最大房屋数。
上述投影法中,将各层房屋根据房号后缀进行垂直投影,r[i]用于记录第i个位置是否出现房屋,若第i个位置垂直方向都没有房屋,则r[i]=0;否则,只要第i个位置垂直方向上出现过房屋,则r[i]=1。最大房屋数为所有出现房屋的位置个数,即:最大房屋数=sum(r[i]==1)。
上述相对最大房屋数查询时,本质查询的房屋数就是房屋占位数,而不是实际的房屋数量。最大房屋数计算需要考虑房屋为跨越多层的跃层房屋类型,跃层房屋在不同层的位置保持垂直对齐。
为了便于描述,可将正常房屋位置记为loc[q,p],表示房屋在第p层、水平方向上第q个位置。跃层房屋位置记为loc[q,(ps,…,pe)],(ps,…,pe)表示跃层房屋所在层信息,ps是跃层房屋的起始层,pe是跃层房屋的终止层,(ps,…,pe)按层号升序排列。
从最下面一层开始,从下往上逐层计算每层的相对最大房屋数,对于第p层的相对最大房屋数NP,如果第p层的房屋都是正常的,则NP是第p层所有房屋数之和;否则,通过递归算法查询第p层所有跃层房屋的左右两侧的相对最大房屋数来得到NP。
第p层第i个跃层房屋左侧相对最大房屋数/>计算方程式如下:
其中,跃层房屋的位置信息为loc[q,(ps,…,p,…,pe)],q表示在水平方向上的位置。roomCount计算两个房间或者房间与边界之间的实际房屋数。式(1)表示/>的左侧相对最大房屋数是其在第p层前一个跃层房屋/>的左侧相对最大房屋数与他们左侧边界之间的房屋数之和。而且若第p层内不存在前一套跃层房屋则以楼层左侧边界作为/>且/>式(2)表示同一跃层房屋的左侧相对最大房屋数为其在各个层的相对最大房屋数的最大值。根据式(1)、式(2)递归计算得到/>的左侧相对最大房屋数。
同理,计算右侧相对最大房屋数/>左右相对最大房屋数相加后再加1即可得到/>的相对最大房屋数,第p层的相对最大房屋数为第p层所有跃层房屋的相对最大房屋数的最大值。
通过比较所有层相对最大房屋数,取最大值作为单元的实际最大房屋数,即单层房屋占位数。一幢中所有单元横向连续绘制,因此所有单元的最大房屋数累加得到幢的最大房屋数。
步骤24、在步骤23递归计算过程中记录分区块的房屋信息,以每一层作为一个block,跃层房屋与跃层房屋之间的、跃层房屋与边界之间为一个区块partition,跃层房屋自身为一个单独partition,记录partition包含的房屋信息、房屋数量、房屋位置索引index,用于楼盘表的房屋位置规划。
步骤3、通过最优折叠展示规划方法,根据用户指定的最大展示房屋数、实际待展示房屋数、跃层房屋分布来规划房屋占用位置与最优折叠方式,包括如下步骤:
步骤31、考虑跃层房屋结构的特殊性,跃层房屋不参与竖向折叠,以跃层房屋为间隔,对同一单元同一楼层的房屋进行分区,每个分区为一个partition,分区信息在步骤24中可记录,计算每层的partition数量为Npart;
步骤32、根据用户指定每个单元的最大展示房屋数Nu(即单层横向展示空间数,若用户没有指定,则采用计算得到的每个单元的单层房屋占位数代替)、当前层partition数量Npart,重新计算当前层的单层横向展示空间数WL以及每个partition占用的展示空间Wpart。
当前层可分配位置空间WL不能低于当前层的区块partition数量,即:
即如果当前层partition数量超过用户指定的最大展示房屋数,则当前层的可分配位置空间WL以partition数量为准Npart,否则以用户指定的最大展示房屋数Nu为准。
每个展示房屋对应于一个横向的展示空间。首先为每个跃层房屋对应的partition分配一个单位的横向展示空间,然后对于非跃层房屋所在的partition,根据分区最大房屋数占比分配剩余横向展示空间。当前层的第i个partition占用的横向展示空间为:
步骤33、根据步骤32中每个partition分配到的横向展示空间partition内的实际房屋数/>将每个partition分配到的横向展示空间进一步分配给区块内的各房屋,每个房屋将获得一个横向展示子空间,计算每个partition内房屋折叠层数LayerNumi、折叠层房屋数/>以及每个房屋的横向展示子空间占用宽度/>
当小于等于/>时,不折叠,LayerNumi=1,/>
当大于/>时,如果/> 每个房屋占用宽度/>为1个单位空间;如果此时调整折叠层的房屋数量使得折叠层之间的房屋数量差异x尽可能小,/>计算如下:
折叠层房屋占用宽度为:
步骤34、应用步骤32、步骤33的空间分配与折叠规划算法,规划每个楼层的房屋逻辑展示方式。
步骤4、房屋实际坐标计算方法,包括如下步骤:
步骤41、根据幢中各单元的最大房屋数和配置的最小单位占用宽度(即单个横向展示空间在实际绘图时的横向占用尺寸),确定整幢房屋内各单元的绘图边界坐标。
步骤42、将每个单元中的房屋按照房号进行房间排序,房号为空则放置到最后。
步骤43、结合前述到的分区空间配置与房屋逻辑规划,根据配置的最小单位占用宽度,按照从左到右、从下到上的顺序,依次遍历每个房屋数据,从第一个房屋以起点的左下的坐标计算,根据设定的长度距离进行方格计算,最后闭环形成五点坐标。下一个房屋以前面一个房屋坐标的右侧为起点,按照相同方式进行五点坐标计算。每个房屋在所占据的坐标组中用首位相接的五点位置记录list<<a1,b1>,<a2,b1>,<a2,b2>,<a1,b2>,<a1,b1>>。
步骤44、将步骤43中计算得到的幢、单元、楼层、房屋的坐标组装成指定Json格式,作为楼盘表骨架结构。
步骤5、根据步骤4得到的Json格式楼盘表骨架结构导入D3.js中,绘制并渲染形成所需的楼盘表概览图,在前端进行显示,供用户查询和调用。另外,前端展示时,还可以添加房屋属性信息到图层中,以根据具体逻辑和业务展现楼盘表概览图信息。
由此,该楼盘表概览图可适配不同类型房屋数据,其展示方式也更接近现实,达到住建房管领域能兼容多种复杂房屋数据的高适应、通用化的楼盘表展现能力。
另外需要说明的是,上述实施例中的适配复杂数据的楼盘表概览图高效生成方法,本质上可以通过计算机程序来执行。因此同样的,基于同一发明构思,本发明的另一较佳实施例中还提供了与上述实施例提供的适配复杂数据的楼盘表概览图高效生成方法对应的一种计算机电子设备,其包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现上述实施例中的适配复杂数据的楼盘表概览图高效生成方法。
此外,上述的存储器中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
由此,基于同一发明构思,本发明的另一较佳实施例中还提供了与上述实施例提供的适配复杂数据的楼盘表概览图高效生成方法对应的一种计算机可读存储介质,该所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,能实现上述实施例中的适配复杂数据的楼盘表概览图高效生成方法。
可以理解的是,上述存储介质可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。同时存储介质还可以是U盘、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
可以理解的是,上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application SpecificIntegrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
另外需要说明的是,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的各实施例中,所述的系统和方法中对于步骤或者模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或步骤可以结合或者可以集成到一起,一个模块或者步骤亦可进行拆分。
以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
Claims (10)
1.一种适配复杂数据的楼盘表概览图高效生成方法,其特征在于,包括:
S1、解析原始的楼盘数据,提取其中每间房屋所在的幢、单元、楼层和房屋的房号信息,同时标记所有属于跃层的房屋,进而将整个楼盘中的所有房屋按照幢、单元、楼层和房屋的四级顺序构建空间拓扑关系;
S2、针对楼盘内的每个单元,基于所述空间拓扑关系和房屋占位数查找方法,在考虑单元内单套跃层房屋竖向投影一致性的情况下,确定每一楼层所需的房屋占位数量,进而确定该单元的单层房屋占位数,所述单层房屋占位数为楼盘表概览图中一个单元所有楼层的房屋不折叠展示所需的最小房屋占位数量;同时将每个单元内的每套跃层房屋分别分割为一个区块,再以跃层房屋和单元侧边界为分割边界,将每个楼层中处于任意两个相邻分割边界之间的连续正常房屋分割为一个区块;
S3、针对楼盘中的每个单元,根据用户配置确定单层横向展示空间数,且单层横向展示空间数不小于该单元内楼层区块数最大值,若用户未配置单层横向展示空间数,则以该单元的所述单层房屋占位数作为单层横向展示空间数;再基于确定的单层横向展示空间数,在垂直方向上不折叠跃层房屋但允许折叠正常房屋的准则下,规划这个单元中所有房屋在楼盘表概览图中的最优展示方式,并计算每个单元内各个房屋的相对位置,形成楼盘中的每个单元的房屋逻辑展示规划;
S4、按照所述房屋逻辑展示规划,以幢为单位,将这一幢中所有单元视为一个绘制整体,计算这一幢中每一个楼层内每套房屋的展示空间在楼盘表概览图中的实际坐标,进而得到楼盘表骨架结构;
S5、根据S4得到的楼盘表骨架结构,绘制并渲染形成所需的楼盘表概览图。
2.如权利要求1所述的适配复杂数据的楼盘表概览图高效生成方法,其特征在于,所述S2中,针对楼盘内的每个单元,基于所述空间拓扑关系和房屋占位数查找方法确定该单元的单层房屋占位数的具体方法为:
基于所述空间拓扑关系,查找楼盘内当前单元中的所有房屋信息,判断当前单元内是否存在跃层房屋以及楼层房号数值是否规律;
若当前单元内不存在跃层房屋,则统计每一楼层的房屋数,取所有楼层的房屋数最大值作为当前单元的单层房屋占位数;
若当前单元内存在跃层房屋且房号数值规律,则从每一层房屋的房号中提取出代表每个房屋在这一层中所处位置的后缀序号,然后采用投影方法将当前单元内每一层房屋的后缀序号分别投影至位置记录序列中,由位置记录序列记录当前单元在每个位置的垂直方向是否存在房屋,若当前单元内任意一层楼层在一个位置存在房屋,则位置记录序列中对应位置的序列值被设置为第一标签值,若当前单元内所有楼层在一个位置均不存在房屋,则位置记录序列中对应位置的序列值被设置为第二标签值;统计投影后的位置记录序列中第一标签值的数量,作为当前单元的单层房屋占位数;
若当前单元内存在跃层房屋且房号数值不规律,则从中提取所有跃层房屋和正常房屋,将当前单元内所有存在跃层的楼层号进行有序排列形成跃层序列,再从跃层序列中识别出所有的连续跃层子序列,每一条连续跃层子序列均为一条连续的且每一层均具有跃层的楼层号序列;然后从当前单元的最下面一层开始,依次向上逐层计算每一楼层的房屋占位数,且在逐层计算过程中,若当前楼层不在所述连续跃层子序列中,则以当前楼层中含有的房屋数作为房屋占位数,若当前楼层在所述连续跃层子序列中,则以递归查询的方式依次从左侧向右侧查询当前楼层中每一套跃层房屋的左侧房屋占位数,同时以递归查询的方式依次从右侧向左侧查询当前楼层中每一套跃层房屋的右侧房屋占位数,其中,以递归的方式查询每一套跃层房屋的左侧或右侧房屋占位数时,需要考虑单元内单套跃层房屋竖向投影的一致性,同一套跃层房屋在不同楼层中的一侧房屋数不一致时需取最大值;递归查询完毕后,针对位于所述连续跃层子序列中的当前楼层,将每套跃层房屋的左侧房屋占位数与右侧房屋占位数求和后再加1并取最大值作为当前楼层的房屋占位数;当获得当前单元内所有楼层的房屋占位数后,取最大值作为当前单元的单层房屋占位数。
3.如权利要求2所述的适配复杂数据的楼盘表概览图高效生成方法,其特征在于,所述S21中,以左侧或右侧分别为计算侧,以递归查询的方式查询当前楼层中每一套跃层房屋的计算侧房屋占位数时,对于第p层第i套被查询的跃层房屋其计算侧房屋占位数计算方程式如下:
其中:表示在第p层中跃层房屋/>的计算侧房屋占位数,表示在递归查询过程中第p层内前一套跃层房屋/>的计算侧房屋占位数,若第p层内不存在前一套跃层房屋则以楼层计算侧边界作为/>且 表示计算第p层中位于/>的计算侧边界和的计算侧边界之间的实际房屋数;/>表示跃层房屋/>所在的所有楼层集合。
4.如权利要求1所述的适配复杂数据的楼盘表概览图高效生成方法,其特征在于,所述S3中,针对楼盘中的每个单元,形成当前单元的房屋逻辑展示规划的方法为:
S31、获取当前单元的分区块信息,其中当前单元内的每套跃层房屋整体作为一个在单元中处于相同垂直投影位置的区块,不存在跃层房屋的楼层整体作为一个区块,而对于存在跃层房屋的楼层,需以跃层房屋和单元侧边界作为分割边界,查找每个楼层中所有相邻的分割边界组合,将每个楼层中位于每一组相邻分割边界之间的所有房屋分别作为一个区块;每个区块内记录由区块内包含的房屋数量、每套房屋的信息以及每套房屋的位置索引,用于楼盘表的房屋位置规划;
S32、判断用户针对当前单元是否配置了单层横向展示空间数,若已配置则将用户配置数值作为当前单元的单层横向展示空间数,若未配置,则以S2中计算得到的当前单元的所述单层房屋占位数作为当前单元的单层横向展示空间数;且若用户配置的单层横向展示空间数如果小于单元内各楼层所含区块数最大值,则需要将当前单元的单层横向展示空间数替换为这个区块数最大值;
S33、依次遍历当前单元的每一楼层,为当前楼层中的所有区块分配横向展示空间,其中每套跃层房屋所在的区块在当前楼层中单独分配一个横向展示空间,当前楼层中其余正常房屋对应的每个区块分配至少1个横向展示空间,且分配到的横向展示空间数量与区块内的房屋占位数量占比相关;
S34、根据当前单元内每个区块分配到的横向展示空间,将横向展示空间以均匀度最大化的原则进一步分配给区块内的所有房屋,使每个房屋获得一个展示子空间;且在分配展示子空间时,如果区块内的房屋数量未超过该区块分配到的横向展示空间数量,则所有展示子空间直接沿横向均匀排布而无需竖向折叠,否则需要将该区块分配到的横向展示空间在纵向进行分割形成多层堆叠的展示子空间进而使区块内的房屋竖向折叠展示;整个当前单元中,每一套跃层房屋在不同层中分配到的展示子空间在竖向上投影位置必须保持一致;
S35、完成楼盘内每个单元中全部楼层的展示空间分配后,记录每一幢每一单元中各房屋所分配的展示子空间的位置及大小信息,形成楼盘中每个单元的房屋逻辑展示规划。
5.如权利要求1所述的适配复杂数据的楼盘表概览图高效生成方法,其特征在于,所述S4中,得到楼盘表骨架结构的方法如下:
S41、针对楼盘中的每一幢房屋,将所有单元沿横向连续拼接,根据房屋逻辑展示规划中每个横向展示空间在图像中的实际尺寸,确定整幢房屋内各单元的绘图边界坐标;
S42、针对楼盘中的每一个单元,在该单元的绘图边界坐标内按照从左到右、从下到上的顺序,计算每套房屋的展示空间在楼盘表概览图中的实际坐标,最后将整个楼盘中幢、单元、楼层和房屋在楼盘表概览图中的实际坐标输出为楼盘表骨架结构。
6.如权利要求1所述的适配复杂数据的楼盘表概览图高效生成方法,其特征在于,所述楼盘表骨架结构采用Json格式文件,并通过D3.js进行绘制和渲染,形成在浏览器中前端展示的最终楼盘表概览图。
7.如权利要求1所述的适配复杂数据的楼盘表概览图高效生成方法,其特征在于,所述的楼盘表概览图中,幢、单元、楼层、房屋各自需要关联属性信息,供前端直接显示或者交互时显示。
8.如权利要求1所述的适配复杂数据的楼盘表概览图高效生成方法,其特征在于,所述S1中,需要识别除了正常房屋和跃层房屋之外的特殊类型房屋和异常数据房屋,所述特殊类型房屋包括顶层房屋、空层房屋、夹层房屋、阁楼、储物间和车位,所述异常数据房屋为无法被归类到正常房屋、跃层房屋和特殊类型房屋的房屋,或者在原始楼盘数据中信息不规范的房屋;针对异常数据房屋和每一种类型的特殊类型房屋,需要在楼盘表概览图中相应房屋所在的单元中预设一个指定的空间区域,将相应房屋信息单独展示在这个空间区域中。
9.一种计算机可读存储介质,其特征在于,所述存储介质上存储有计算机程序,当所述计算机程序被处理器执行时,实现如权利要求1~8任一所述的适配复杂数据的楼盘表概览图高效生成方法。
10.一种计算机电子设备,其特征在于,包括存储器和处理器;
所述存储器,用于存储计算机程序;
所述处理器,用于当执行所述计算机程序时,实现如权利要求1~8任一所述的适配复杂数据的楼盘表概览图高效生成方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311606806.0A CN117556512B (zh) | 2023-11-28 | 适配复杂数据的楼盘表概览图高效生成方法、介质及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311606806.0A CN117556512B (zh) | 2023-11-28 | 适配复杂数据的楼盘表概览图高效生成方法、介质及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117556512A true CN117556512A (zh) | 2024-02-13 |
CN117556512B CN117556512B (zh) | 2024-07-05 |
Family
ID=
Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101668006B1 (ko) * | 2015-09-08 | 2016-10-20 | 한국항공우주연구원 | 위성 기반의 3차원 공간 정보 구축 방법 및 시스템 |
CN106127680A (zh) * | 2016-06-29 | 2016-11-16 | 深圳市优象计算技术有限公司 | 一种720度全景视频快速浏览方法 |
US20170161407A1 (en) * | 2015-12-04 | 2017-06-08 | International Business Machines Corporation | Addressing Coupled Noise-Based Violations with Buffering in a Batch Environment |
US20180307243A1 (en) * | 2017-04-25 | 2018-10-25 | Beijing Xiaomi Mobile Software Co., Ltd. | Method and device for drawing room layout |
CN109840338A (zh) * | 2017-11-28 | 2019-06-04 | 南京国图信息产业有限公司 | 一种应用于三维不动产信息管理的三维楼盘模型构建方法 |
CN109918751A (zh) * | 2019-02-26 | 2019-06-21 | 华中师范大学 | 一种基于CityGML扩展的建筑物三维语义建模方法 |
CN111738831A (zh) * | 2020-06-19 | 2020-10-02 | 中国建设银行股份有限公司 | 一种业务处理方法、装置及系统 |
US20210019455A1 (en) * | 2019-07-17 | 2021-01-21 | Smartscapes Studio, S.L. | Method and system for calculating a space planning and generating design solutions assisted by artificial intelligence |
US20210073435A1 (en) * | 2019-09-06 | 2021-03-11 | BeamUp, Ltd. | Structural design systems and methods for selective simulation of equipment coverage in a floor plan |
CN113486039A (zh) * | 2021-07-27 | 2021-10-08 | 重庆市规划和自然资源信息中心 | 一种登记交易楼盘表构建方法 |
US11195324B1 (en) * | 2018-08-14 | 2021-12-07 | Certainteed Llc | Systems and methods for visualization of building structures |
CN113869052A (zh) * | 2021-09-26 | 2021-12-31 | 杭州中房信息科技有限公司 | 基于ai的房屋地址匹配方法、存储介质及设备 |
CN114549688A (zh) * | 2022-01-17 | 2022-05-27 | 成都房联云码科技有限公司 | 一种二维楼盘表的生成方法 |
US20220198081A1 (en) * | 2020-12-18 | 2022-06-23 | Autodesk, Inc. | Techniques for automatically designing structural systems for buildings |
CN115391873A (zh) * | 2022-07-11 | 2022-11-25 | 北京城市网邻信息技术有限公司 | 多楼层房屋数据生成及改造方法、装置、设备及介质 |
Patent Citations (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101668006B1 (ko) * | 2015-09-08 | 2016-10-20 | 한국항공우주연구원 | 위성 기반의 3차원 공간 정보 구축 방법 및 시스템 |
US20170161407A1 (en) * | 2015-12-04 | 2017-06-08 | International Business Machines Corporation | Addressing Coupled Noise-Based Violations with Buffering in a Batch Environment |
CN106127680A (zh) * | 2016-06-29 | 2016-11-16 | 深圳市优象计算技术有限公司 | 一种720度全景视频快速浏览方法 |
US20180307243A1 (en) * | 2017-04-25 | 2018-10-25 | Beijing Xiaomi Mobile Software Co., Ltd. | Method and device for drawing room layout |
CN109840338A (zh) * | 2017-11-28 | 2019-06-04 | 南京国图信息产业有限公司 | 一种应用于三维不动产信息管理的三维楼盘模型构建方法 |
US11195324B1 (en) * | 2018-08-14 | 2021-12-07 | Certainteed Llc | Systems and methods for visualization of building structures |
CN109918751A (zh) * | 2019-02-26 | 2019-06-21 | 华中师范大学 | 一种基于CityGML扩展的建筑物三维语义建模方法 |
US20210019455A1 (en) * | 2019-07-17 | 2021-01-21 | Smartscapes Studio, S.L. | Method and system for calculating a space planning and generating design solutions assisted by artificial intelligence |
US20210073435A1 (en) * | 2019-09-06 | 2021-03-11 | BeamUp, Ltd. | Structural design systems and methods for selective simulation of equipment coverage in a floor plan |
CN111738831A (zh) * | 2020-06-19 | 2020-10-02 | 中国建设银行股份有限公司 | 一种业务处理方法、装置及系统 |
US20220198081A1 (en) * | 2020-12-18 | 2022-06-23 | Autodesk, Inc. | Techniques for automatically designing structural systems for buildings |
CN113486039A (zh) * | 2021-07-27 | 2021-10-08 | 重庆市规划和自然资源信息中心 | 一种登记交易楼盘表构建方法 |
CN113869052A (zh) * | 2021-09-26 | 2021-12-31 | 杭州中房信息科技有限公司 | 基于ai的房屋地址匹配方法、存储介质及设备 |
CN114549688A (zh) * | 2022-01-17 | 2022-05-27 | 成都房联云码科技有限公司 | 一种二维楼盘表的生成方法 |
CN115391873A (zh) * | 2022-07-11 | 2022-11-25 | 北京城市网邻信息技术有限公司 | 多楼层房屋数据生成及改造方法、装置、设备及介质 |
Non-Patent Citations (8)
Title |
---|
UDOVICIC, V ET AL: "Radon variability due to floor level in two typical residential buildings in Serbia", 《NUKLEONIKA》, 1 January 1997 (1997-01-01), pages 121 - 125 * |
刘怡菲等: "基于楼盘表和户型图的分层分户模型建设", 《测绘与空间地理信息》, 30 October 2017 (2017-10-30), pages 119 - 122 * |
史新通;: "测绘在房产登记中的应用", 科技致富向导, no. 29, 20 October 2010 (2010-10-20), pages 204 * |
宋军: "智慧楼盘表支撑房屋实现全生命周期管理", 中国房地产, no. 022, 31 December 2020 (2020-12-31), pages 66 - 69 * |
杨伟臣等: "基于楼盘表为核心的房屋全生命周期管理刍议", 《房地产交易管理》, 5 February 2022 (2022-02-05), pages 40 - 43 * |
肖亮明;徐月生;: "二三维楼盘表联动展示查询在不动产统一登记工作中的应用", 现代测绘, no. 01, 25 January 2020 (2020-01-25), pages 60 - 62 * |
芦园园;: "房地产测绘与地理信息集成系统分析", 硅谷, no. 15, 8 August 2013 (2013-08-08), pages 65 * |
郭雅静: "楼盘表模型三维网络可视化方法研究", 《工程科技Ⅱ辑》, 31 December 2018 (2018-12-31), pages 038 - 252 * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112287182A (zh) | 图数据存储、处理方法、装置及计算机存储介质 | |
WO2019144516A1 (zh) | 坐席分配方法、电子装置及计算机可读存储介质 | |
CN111831629B (zh) | 一种数据处理方法及装置 | |
US10303705B2 (en) | Organization categorization system and method | |
US10885047B2 (en) | System and method providing association rule aggregates | |
CN111598603A (zh) | 仓库选址方法、装置、设备及存储介质 | |
US20180081953A1 (en) | System, computer-implemented method, and computer program for improving access to and usefulness of data for business intelligence | |
CN103853752A (zh) | 管理时间序列数据库的方法和装置 | |
CN111639077B (zh) | 数据治理方法、装置、电子设备、存储介质 | |
CN110309143B (zh) | 数据相似度确定方法、装置及处理设备 | |
WO2019041764A1 (zh) | 团体保费评估的方法、装置、计算机设备及存储介质 | |
CN115423993A (zh) | 一种基于三维gis的分层分户单体化方法及系统 | |
CN110737727B (zh) | 一种数据处理的方法及系统 | |
Lin et al. | Spatial pattern analysis of address quality: A study on the impact of rapid urban expansion in China | |
CN117556512B (zh) | 适配复杂数据的楼盘表概览图高效生成方法、介质及设备 | |
CN117556512A (zh) | 适配复杂数据的楼盘表概览图高效生成方法、介质及设备 | |
Noviandy et al. | Environmental and Economic Clustering of Indonesian Provinces: Insights from K-Means Analysis | |
Guiffard | Valuing the virtual: The impact of fiber to the home on property prices in France | |
US20150302419A1 (en) | Appraisal adjustments scoring system and method | |
CN110796492A (zh) | 一种重要特征的确定方法、装置、设备及存储介质 | |
CN113496365A (zh) | 一种仓库合并方案确定方法、装置、设备及介质 | |
CN115994194B (zh) | 政务大数据的数据质量检查方法、系统、设备及介质 | |
CN109086309A (zh) | 一种指标维度关系定义方法、服务器及存储介质 | |
CN115858895B (zh) | 一种用于智慧城市的多源异构数据处理方法及系统 | |
CN109145059A (zh) | 用于数据统计的数据处理方法、服务器及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant |