[发明专利]面向二维规则矢量空间数据的可视域分析方法及装置有效
申请号: | 201910830422.4 | 申请日: | 2019-09-04 |
公开(公告)号: | CN110728652B | 公开(公告)日: | 2021-09-14 |
发明(设计)人: | 黄颖;郭明强;曹威;王均浩;关庆锋;谢忠;耿振坤;韩成德 | 申请(专利权)人: | 中国地质大学(武汉) |
主分类号: | G06T7/00 | 分类号: | G06T7/00;G06T7/62;G06F16/29 |
代理公司: | 武汉知产时代知识产权代理有限公司 42238 | 代理人: | 易滨 |
地址: | 430000 湖*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种面向二维规则矢量空间数据的可视域分析方法及装置,先获取目标点矢量数据,查找在其在可视范围内的遮挡物,计算目标点矢量数据与遮挡物体的各个顶点连线与遮挡物边界的所有交点,并筛选出有效交点和顶点;然后计算由遮挡物在可视范围内的最外侧顶点和目标点矢量数据的连线与目标点可视范围边界的交点,再计算由该交点所构成弧段的弧段点,进而由有效交点和顶点以及弧段点构成目标矢量数据视野盲区的边界点,将所有边界点连成一个封闭的几何图形,即为视野盲区,将可视范围内的所有视野盲区求并集得到目标点矢量数据可视范围内总视野盲区,最后将目标点矢量数据的可视范围与其总视野盲区作叠加求差,即可得到目标点矢量数据的可视域。 | ||
搜索关键词: | 面向 二维 规则 矢量 空间 数据 视域 分析 方法 装置 | ||
【主权项】:
1.一种面向二维规则矢量空间数据的可视域分析方法,其特征在于,包含如下步骤:/n步骤1)、使用MapGIS平台的SFeatureCls类的Open方法打开目标点矢量数据和遮挡物矢量数据;/n步骤2)、使用MapGIS平台的SFeatureCls类的Seclect方法查询目标点矢量数据得到目标点矢量数据集dataset,并使用MapGIS平台的Recordset类的MoveFirst方法来获取目标点矢量数据集dataset的第一个矢量数据点,作为当前矢量数据点;/n步骤3)、使用MapGIS平台的SFeatureCls类的Seclect方法,以当前矢量数据点为圆心,以某一固定长度为半径,对遮挡物矢量数据作圆查询,查询结果是一系列遮挡物的集合recordset,使用MapGIS平台的Recordset类的MoveFirst方法来获取遮挡物数据集recordset的第一个遮挡物,作为当前遮挡物;/n步骤4)、获取到recordset的Geometry属性,根据属性Geometry获取当前遮挡物的边界Boundary,并将边界Boundary转换成GeoVarLine类,然后使用MapGIS平台的GeoVarLine类的Get2dots方法获取当前遮挡物的边界顶点集dots_v;/n步骤5)、使用MapGIS平台的Dots类的GetItem方法获取顶点集dots_v里的一个顶点作为当前顶点,将当前矢量数据点与当前遮挡物的该当前顶点连线形成第一类型直线,根据当前遮挡物边界的顶点集dots_v,将当前遮挡物的每条边当成一条由两顶点组成的第二类型直线,用数学方法依次求取各条第二类型直线与第一类型直线的交点坐标,只保存当前遮挡物的每条边上的交点坐标和交点坐标两侧的端点坐标,当前遮挡物的每条边上以外的交点坐标不予保存;/n步骤6)、根据步骤5计算的交点坐标的个数,计算出有效交点和有效顶点;其中,/n若交点坐标的个数为1,则说明对应交点为当前矢量数据点在当前遮挡物遮挡下的不可视范围最外侧的边界点,同时这个边界点也是当前遮挡物的顶点,即有效顶点,将有效顶点保存在数组Arr里;/n若交点坐标的个数为偶数,则对应交点全部为无效交点,然后判断当前顶点是否有效:首先计算当前矢量数据点与每个交点的距离d1,然后找出距离最小的那个交点,记最小距离为d1_min,再计算当前矢量数据点与当前顶点的距离d2,若d1_min小于d2,则当前顶点为无效顶点,否则顶点为有效顶点,并将有效顶点保存在数组Arr里;/n若交点坐标的个数为不等于1的奇数,首先计算每个交点与当前矢量数据点的距离d3,找出距离最小的交点,记最小距离为d3_min,再计算当前顶点与当前矢量数据点的距离d4,若d3_min小于d4,则说明当前顶点和所有交点均为无效点,否则顶点和所有交点均为有效点,将有效顶点保存在数组Arr里,将有效交点保存在数组Arr1里;/n此时,当前顶点的有效顶点和有效交点的坐标计算完毕,判断dots_v里的所有顶点是否计算完毕,若计算完毕,转步骤7;否则转步骤5计算下一个顶点的有效交点和有效顶点,直到所有顶点的有效交点和有效顶点都计算完毕;/n步骤7)、根据步骤6计算的有效交点和有效顶点,按顺序保存在MapGIS平台的提供的dots_r数组里;/n步骤8)、根据步骤7中得到的数组dots_r,计算当前矢量数据点的视野盲区最外侧边界点的连线与当前矢量数据点在无遮挡情况下的视野范围边界的弧段点,构成弧段点的点集dots_a;/n步骤9)、使用MapGIS平台提供的Dots类的Append方法,将步骤8计算得到的dots_a添加到步骤7计算的dots_r中,为了使其组成一个封闭的图形,还需要将dots_r数组中的第一个点添加到dots_r数组的最后,使其首尾点重合,这样dots_r数组中的点就能按照点顺序连接成一个封闭的几何图形,即为当前矢量数据点在某一遮挡物遮挡下的视野盲区;/n步骤10)、使用MapGIS平台提供的RecordSet类MoveNext的方法获取遮挡物数据集recordset的下一个遮挡物,若recordset中没有下一个遮挡物,转步骤11,如果有,则将下一个遮挡物作为新的当前遮挡物,则转步骤4计算当前矢量数据点在下一个遮挡物遮挡下的视野盲区;/n步骤11)、使用MapGIS平台提供的GeoPolygon类的Union方法将计算得到的所有视野盲区叠加求并,得到当前矢量数据点可视范围内的总视野盲区,再使用GeoPolygon类的Difference方法将目标点矢量数据在无遮挡情况下的可视范围与总视野盲区叠加求差,即可得到当前矢量数据点实际可视范围;使用MapGIS平台的Recordset类MoveNext方法来获取目标点矢量数据集dataset的下一个矢量数据点,若datasetrecordset中没有下一个矢量数据点,则转步骤12),若有下一个矢量数据点,则将下一个矢量数据点作为新的当前矢量数据点,转步骤3)计算下一个矢量数据点的实际可视范围;/n步骤12)、使用MapGIS平台提供的GeoPolygon类的Union方法将所有矢量数据点的实际可视范围叠加求并,即可得到该目标点矢量数据的总可视域。/n
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国地质大学(武汉),未经中国地质大学(武汉)许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910830422.4/,转载请声明来源钻瓜专利网。