可左右滑动选省市

一种地图制图中河流绘制方法发明专利

更新时间:2025-04-01
一种地图制图中河流绘制方法发明专利 专利申请类型:发明专利;
地区:湖北-武汉;
源自:武汉高价值专利检索信息库;

专利名称:一种地图制图中河流绘制方法

专利类型:发明专利

专利申请号:CN202410432691.6

专利申请(专利权)人:武汉智图科技有限责任公司
权利人地址:湖北省武汉市东湖开发区武汉大学科技园内创业楼3楼18号

专利发明(设计)人:李响,李达,刘慧文,曹婉蕾,江婷,周专,徐保华,曹健,宁凯轩

专利摘要:本发明提供一种地图制图中河流绘制方法,包括:基于单线河流数据,提取单线河流中的悬挂节点和伪节点并进行处理;寻找地图制图范围内的各个河网的交汇终点,基于交汇终点,对地图制图范围内的所有河流按照所属河网进行分组,得到每个河网内的所有河流;对于每个河网内的所有河流,基于斯特拉勒河流分级法进行等级划分,对于最上游河流,根据河流长度进一步进行等级划分,得到每条河流的等级值;将每一条河流的等级值与符号宽度进行对应,在绘制河流时,根据当前河流的等级值调取对应的符号宽度,基于所述符号宽度,绘制河流。本发明利用基础地理信息数据库中的河流数据,快速地完成地图河流分级并实现单线河流渐变效果,以满足地图制图的需要。

主权利要求:
1.一种地图制图中河流绘制方法,其特征在于,包括:
基于单线河流数据,提取单线河流中的悬挂节点和伪节点,对悬挂节点和伪节点进行处理,得到处理后的单线河流数据;
基于处理后的单线河流数据,寻找地图制图范围内的各个河网的交汇终点;
基于各个河网的交汇终点,对地图制图范围内的所有河流按照所属河网进行分组,得到每个河网内的所有河流;
对于每个河网内的所有河流,基于斯特拉勒河流分级法进行等级划分,对于最上游河流,根据河流长度进一步进行等级划分,得到每条河流的等级值;
将每一条河流的等级值与符号宽度进行对应,在绘制河流时,根据当前河流的等级值调取对应的符号宽度,基于所述符号宽度,绘制河流;
所述基于单线河流数据,提取单线河流中的悬挂节点和伪节点,包括:提取所有单线河线要素两端顶点,获取每一个顶点与单线河线要素空间相交数量,若相交数量值为1,则此顶点为单线河悬挂节点;若相交数量值为2,则此顶点为伪节点;若相交数量值大于或等于3,则此顶点为河流交汇节点;
所述基于各个河网的交汇终点,对地图制图范围内的所有河流按照所属河网进行分组,之后还包括:对于同一河网内的河流,每条河流起点从河源出发经过一条或多条路径到达河网交汇终点,计算每段河流的长度,得到长度属性;
利用网络拓扑分析,以每段河流的长度作为正向权重,反向权重设置为无穷大,根据权重大小确定每段河流为主干流向或支流流向;
设置每个河流起点到河网交汇终点的最短路径内的河段流向优先级,若河段为主干流向,则流向优先级设置为1,若河段为支流流向,则流向优先级设置为2;
将流向优先级为2的河段的流向反向;
所述对于每个河网内的所有河流,基于斯特拉勒河流分级法进行等级划分,包括将最上游河流的等级值均设置为1,采用递归算法按河网分组对下游的各条河流计算等级值:当2条或多条具有相同等级值的河流连接时,流出的河流等级值加1;
当2条或多条具有不同等级值的河流连接时,流出的河流等级值取其中最大值;
如果河网内存在循环,流向优先级为2的河流等级值不被计算。
2.根据权利要求1所述的地图制图中河流绘制方法,其特征在于,所述对悬挂节点和伪节点进行处理,得到处理后的单线河流数据,包括:参考原地图数据库比例尺测算未咬合距离范围,设计容差值域;
根据所述容差值域进行片捕捉,将悬挂节点处的单线河自动延伸至容差值域内与其他单线河进行咬合,并通过线连接,将属性相同的单线河连接成一根线,所述属性包括单线河的名称。
3.根据权利要求1所述的地图制图中河流绘制方法,其特征在于,所述基于处理后的单线河流数据,寻找地图制图范围内的各个河网的交汇终点,包括:提取所有单线河线要素的起点和终点,分别获取起点、终点与单线河线要素的空间相交数量,若起点的相交数量值为1,则起点即为单线河合理悬挂点处,为最上游支流的起点;
若终点的相交数量值为1,则终点即为制图范围内一河网各条河流的交汇终点,为最下游河流的终点。
4.根据权利要求1所述的地图制图中河流绘制方法,其特征在于,所述对于最上游河流,根据河流长度进一步进行等级划分,包括:当河流图上长度小于第一长度阈值时,河流图上长度较短,河流等级值仍为1;
当河流图上长度大于或等于第一长度阈值且小于第二长度阈值时,河流图上长度中等,将河流分为两段,其中0‑40%河段等级值仍为1、40%‑60%河段等级值细化为1.1;
当河流图上长度大于或等于第三长度阈值时,河流图上长度较长,河流分为三段,其中
0‑25%河段等级值仍为1、25%‑70%河段等级值细化为1.1、70%‑100%河段等级值细化为1.2;
其中,所述第一长度阈值小于所述第二长度阈值,所述第二长度阈值小于所述第三长度阈值。
5.根据权利要求1或4所述的地图制图中河流绘制方法,其特征在于,所述将每一条河流的等级值与符号宽度进行对应,在绘制河流时,根据当前河流的等级值调取对应的符号宽度,基于所述符号宽度,绘制河流,包括:根据每一条河流的等级值,建立河流等级值与图上河流宽度的对应关系;
根据河流宽度,设计相应的线型和颜色,基于相应颜色的线型,对每一条河流进行绘制。
6.根据权利要求5所述的地图制图中河流绘制方法,其特征在于,所述根据河流宽度,设计相应的线型和颜色,基于相应颜色的线型,对每一条河流进行绘制,包括:河流宽度在图上大于0.5mm的河流,用双线依比例尺表示,河流宽度在图上小于0.5mm的河流,用线粗为0.1mm‑0.5mm的单线渐变表示。 说明书 : 一种地图制图中河流绘制方法技术领域[0001] 本发明涉及地图绘制领域,更具体地,涉及一种地图制图中河流绘制方法。背景技术[0002] 在地图制图中,河流作为一个重要的元素,也需要在地图中绘制出来,对于不同的河流,需要绘制不同的效果。地理信息数据库中,一般不会从渐变角度对河流进行分级,则需要制图人员在编图环节来实现。现有的技术方法有:[0003] (1)在地图设计软件(如CorelDraw、从AdobeIllustrator、FreeHand)里打断河流线,进而分段赋宽度值,多为逐一手动操作,效率较低、对制图人员专业技术能力要求较高。[0004] (2)在GIS软件中处理,主要利用制图表达的几何绘制效果,提前设置分段河流的起始宽度、终止宽度、长度等,数据处理工作量大,所赋值起止宽度因比例尺变化重复使用率低,若转换为其他格式成果,原本是线状的渐变河流被转换成了面状,无法再次编辑利用。[0005] (3)基于地图设计软件和GIS软件,针对河流渐变的二次开发,因水系数据复杂的空间关系、属性、拓扑关系、网络逻辑等原因,工具对原始河流数据质量要求太高,导致较多功能在实际生产中无法真正发挥通用性和批量性而最终无法普适性落地。发明内容[0006] 本发明针对现有技术中存在的技术问题,提供一种地图制图中河流绘制方法,包括:[0007] 基于单线河流数据,提取单线河流中的悬挂节点和伪节点,对悬挂节点和伪节点进行处理,得到处理后的单线河流数据;[0008] 基于处理后的单线河流数据,寻找地图制图范围内的各个河网的交汇终点;[0009] 基于各个河网的交汇终点,对地图制图范围内的所有河流按照所属河网进行分组,得到每个河网内的所有河流;[0010] 对于每个河网内的所有河流,基于斯特拉勒河流分级法进行等级划分,对于最上游河流,根据河流长度进一步进行等级划分,得到每条河流的等级值;[0011] 将每一条河流的等级值与符号宽度进行对应,在绘制河流时,根据当前河流的等级值调取对应的符号宽度,基于所述符号宽度,绘制河流。[0012] 本发明提供的一种地图制图中河流绘制方法,利用基础地理信息数据库中的河流数据,快速地完成地图河流分级并实现单线河流渐变效果,以满足地图制图的需要。附图说明[0013] 图1为本发明提供的一种地图制图中河流绘制方法流程图;[0014] 图2为河流数据错误节点的示意图;[0015] 图3为从河流数据中识别出的河流起点和交汇终点的示意图;[0016] 图4为河流流向错误示意图;[0017] 图5为河流的流向优先级示意图;[0018] 图6为河流的正确流向以及错误流向示意图;[0019] 图7为本发明提供的一种地图制图中河流绘制方法的整体流程示意图。具体实施方式[0020] 为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。另外,本发明提供的各个实施例或单个实施例中的技术特征可以相互任意结合,以形成可行的技术方案,这种结合不受步骤先后次序和/或结构组成模式的约束,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时,应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。[0021] 图1为本发明提供的一种地图制图中河流绘制方法流程图,如图1所示,方法包括:[0022] 步骤1,基于单线河流数据,提取单线河流中的悬挂节点和伪节点,对悬挂节点和伪节点进行处理,得到处理后的单线河流数据。[0023] 可理解的是,因数据采集不准、捕捉精度不够、拓扑处理不规范等原因,单线河流存在较多伪节点、不合理悬挂点、相交处未打断等问题,针对上述河流数据易发错误形成批量修复技术方法。[0024] 具体的,提取所有单线河线要素两端顶点(起点和终点),获取顶点与单线河线要素空间相交数量。相交值为1,则该顶点即为单线河悬挂点处,相交值为2,则该顶点即为伪节点处,相交值大于或等于3,则该顶点即为河流交汇处。河流数据易发错误见图2,其中(a)、(b)为不合理悬挂点,(c)为伪节点,(d)为相交处未打断。[0025] 合理悬挂点无需处理,如最上游支流起点处;不合理悬挂点需处理,如多条河流交汇处应严格咬合。不合理悬挂点的产生一般是数据采集过程中未严格捕捉所致,参考原数据库比例尺并测算未咬合距离范围,设计捕捉容差,如1:10000河流数据设计捕捉容差为5m‑30m。按设计容差进行片捕捉(SegmentSnapper),悬挂点处单线河自动延伸至容差值域内与其他单线河进行咬合,并通过线连接(LineCombiner),将属性相同(比如多条河流同为汉江,则多条河流的属性相同)的单线河连接成一根线,同时完成了伪节点及不合理悬挂点的修改,最后全选单线河线要素在交汇处打断相交线,得到悬挂点处理后的单线河流数据。[0026] 步骤2,基于处理后的单线河流数据,寻找地图制图范围内的各个河网的交汇终点。[0027] 可理解的是,真实世界中,百川东到海,每条河流最终流向并交汇至一处;地图制图中,制图范围内可能存在多个河网系统,每个河网内多条河流交汇至图内某一点即河网交汇终点。在步骤1中,解决了河流数据节点连通的问题,若河流线要素数字化方向无误即流向正确,则能准确找到河网交汇终点。[0028] 具体的,提取所有单线河线要素两端顶点(起点和终点),分别获取起点、终点与单线河线要素空间相交数量。起点相交值为1即为单线河合理悬挂点处(最上游支流的起点);终点相交值为1即为制图范围内某一河网各条河流的交汇终点(最下游河流的终点),详见图3。[0029] 需要说明的是,如果在搜寻河网交汇终点时,找不到汇交终点,或出现两个及以上汇交点,是由于最下游最后一段河流流向错误所致,见图4中的(b);生成多余错误的伪终点,是由于最上游从河源出发的单线河流流向错误所致,见图4中的(c),其中,图4中的(a)是正确的。前者要补正,后者多余的伪终点要删除,否则后续操作可能产生反复或意想不到的结果。[0030] 该步骤产生的问题具体可在S3步骤执行后处理,针对图4中的(b)错误类型,因河网中没有目标终点,无法确定主干流向,流向优先级(stream_priority)则为‑1,筛选后将最下游最后一段河流反向处理;针对图4中的(c)错误类型,因其与同一河网中其他大多数正向权重流向不同,流向优先级(stream_priority)则为2(支流),将值为2的河流全部筛选批量反向处理(循环河流的方向影响可忽略)。完成上述修改后,再重新执行S2步骤,可得到各个河网正确的交汇终点。[0031] 步骤3,基于各个河网的交汇终点,对地图制图范围内的所有河流按照所属河网进行分组,得到每个河网内的所有河流。[0032] 可理解的是,制图范围内相互连通的河流构成同一河网,不连通的河流则分属不同的河网。同一河网内的各条河流最终流向交汇至一点,根据每个河网唯一的交汇终点可准确地对河流进行分组。[0033] 对于同一河网内的河流,每条河流起点从河源出发都可以经过一条或多条路径到达河网交汇终点。对于每一条河流,计算每段河流的长度,得到长度属性length,利用网络拓扑分析(StreamPriorityCalculator),以每段河流的长度作为正向权重(沿着线的数字化方向),考虑到河流的有向性,反向权重(逆着线的数字化方向)设置为无穷大。根据每段河流的权重确定该段河流是主干流向还是支流流向,权重小的为主干流向,权重大的为支流流向。设置每个起点到河网交汇终点最短路径内的线段流向优先级stream_priority,其中,主干流向的河段的流向优先级设置为1,分支流向的河段的流向优先级设置为2,详见图5。同时找出属于同一网络的相连线,网络ID(network_id)属性值相同的河流为同一河网、不同的为不同河网。[0034] 需要说明的是,原始河流数据采集时,数字化方向不正确,未严格考虑河流流向,导致流向错误问题较多,可能会影响最终河流绘制时的渐变效果。[0035] 在S3步骤中,河网分组的同时,以河流长度作为正向权重,经最短路径算法已计算得到各条河流的stream_priority(流向优先级),具体分析如下:[0036] (1)如果河网内所有河流流向均正确,理论上值应均为1主干流向(循环河流除外)。[0037] (2)如果存在值为2支流,一种可能是河网内存在循环,两端都有与河流连接,循环河流一般统一设置为较小等级值或单独优化,对河网整体渐变效果影响较小。另一种可能是存在有一或多条河流流向错误,导致自身及其上游河流流向层级降级,最上游1级河流流向错误需要修改,否则影响结果的执行(在特殊情况一中已论述);非最上游河流流向错误,可参见图6中的(b),其中,图6中的(a)为正确的流向,仅从实现河流渐变效果的角度可不修改,其河网归属正确且对S4步骤Strahler等级值计算结果无影响,不影响河流的分级与渐变,但从数据规范化角度建议修改。[0038] (3)如果存在值为‑1,说明河流没有匹配到交汇终点,需要相应修改(在特殊情况一中已论述)。[0039] 对于上述需要修改的情况,筛选值为‑1的最下游最后一段河流及全选值为2的河流批量反向处理即可。[0040] 步骤4,对于每个河网内的所有河流,基于斯特拉勒河流分级法进行等级划分,对于最上游河流,根据河流长度进一步进行等级划分,得到每条河流的等级值。[0041] 可理解的是,对每个河网内河流不仅按斯特拉勒(Strahler)河流分级法进行分级,还需对最上游从河源出发的河流按长度进一步分级,以达到较佳的河流渐变效果。[0042] 上述步骤2和步骤3生成的“河网交汇终点”和“河网分组”数据,通过空间叠加分析点线相交计算(PointOnLineOverlayer),将各个河网的河网ID属性分别赋值给其对应的交汇终点,保证两者分组属性的一致性。[0043] 基于上述的步骤,河流数据已形成拓扑正确的网络结构,相交处已连接且打断,存在交叉点。基于按斯特拉勒(Strahler)河流分级法进行分级的实质是采用递归算法(StreamOrderCalculator)按河网分组对各条河流计算Strahler等级值,其中strahler_order斯特拉勒顺序属性存储分级值。[0044] 其中,斯特拉勒河流分级法具体计算如下:[0045] (1)对于河网中的最上游河流的Strahler等级值均设置为1;[0046] (2)当2条或多条具有相同Strahler等级值的河流连接时,流出的河流等级值加1。[0047] (3)当2条或多条具有不同Strahler等级值的河流连接时,流出的河流等级值取其中最大值。[0048] (4)如果河网内存在循环(比如图4中流向优先级为2的支流),流向优先级stream_priority为2的河流等级值不被计算。[0049] 从地图学角度,河流从上游到下游的渐变不仅体现在河流流入流出连接处,最上游从河源出发的单线河流也应体现渐变,且一般呈现在河源和下游处粗细变化较快、在中游变化减慢的制图效果。直接发源于河源的河流Strahler等级值为1,为达到更好的地图表达效果需按长度进一步细化分级赋值,且河流长短不同,渐变的方式与快慢也将有所不同,以1:50000河流数据为例:[0050] (1)当河流图上长度小于36mm(即实地长度小于1800m)时,河流图上长度较短,Strahler等级值仍为1。[0051] (2)当河流图上长度大于或等于36mm且小于72mm(即实地长度大于或等于1800m且小于3600m)时,河流图上长度中等,分为两段,其中0‑40%河段Strahler等级值仍为1、40%‑60%河段等级值细化为1.1(介于1‑2之间)。[0052] (3)当河流图上长度大于或等于72mm(即实地长度大于或等于3600m)时,河流图上长度较长,分为三段,其中0‑25%河段Strahler等级值仍为1、25%‑70%河段等级值细化为1.1、70%‑100%河段等级值改为1.2。[0053] 需要说明的是,对最上游河流(称为1级河流),仅从长度及成图比例尺角度考虑,对其符号宽度进行均匀渐变处理,可满足一般制图要求。还可以增加地图幅面尺寸和使用场景等考虑因子,如大幅面地图常挂于墙上阅读、小幅面地图集则随手翻阅等,如何让河流渐变的感受更加直接。针对不同场景使用的不同尺寸的地图(如双全开、全开、对开、四开、八开、十六开地图等),进一步设置更加细致的分级体系,以达到1级河流宽度渐变在不同规格地图上更直观的视觉效果,满足地图阅读习惯。[0054] 经过Strahler分级和最上游河流按长度进一步分级,得到各条河流的等级值,完成河流的分级。[0055] 步骤5,将每一条河流的等级值与符号宽度进行对应,在绘制河流时,根据当前河流的等级值调取对应的符号宽度,基于所述符号宽度,绘制河流。[0056] 其中,河流等级与符号宽度的对应关系动态调节,满足不同类型地图的多样显示需求,如水系专题图,其河网丰富、分布密集,在Strahler等级值范围和最上游河流细化分级方面可进一步优化。河流等级值与宽度符号之间的对应关系表可参见表1。[0057] 表1河流符号优化对应表[0058][0059] 可理解的是,按照地图制图要求,河流宽度在图上大于0.5mm的用双线依比例尺表示,在图上小于0.5mm的用线粗为0.1mm‑0.5mm的单线渐变表示。依据strahler_order字段的河流等级值,建立河流等级值与图上宽度的对应关系,参考值详见表2,可依次类推。[0060] 表2河流等级值与图上宽度对应表[0061][0062] 按照表1配置单线河流线宽,并设计线型、颜色等,形成配图模板,在GIS软件或地图平面设计软件中完成单线河流的符号化,河流渐变效果详见图7。若制图比例尺较大,图上存在依比例尺表示的面状河流,将河流面层置于单线河流上层即可。[0063] 下面根据图7对本发明提供的一种地图制图中河流绘制方法进行总体说明。河流水系分为单线河流和面状水系,对于单线河流,进行伪节点和不合理悬挂点的识别和提取,并对单线河流中的不合理悬挂点进行处理,并在相交处进行打断,得到精确的单线河流数据。根据处理后的单线河流数据,找到河网交汇终点,根据每一个河网的交汇终点,对所有的河流按照所属河网进行分组,得到每一个河网包含的所有河流,并对每一条河流的流向优先级进行设置,若所有的河流的主干流向,则不进行处理,对支流流向进行反向。[0064] 对每一个河网中的每一条河流进行等级划分,并对最上游的河流的等级值按照长度进行细分,得到每一条河流的等级值。根据每一条河流的等级值,配置绘制该条河流的线形、颜色以及粗细,将河流绘制于地图上,最终完成每一条河流的绘制。[0065] 本发明提供的一种地图制图中河流绘制方法,能够解决如下的问题:[0066] (1)解决数据采集精度问题:主要为因数据采集不准、捕捉精度不够等原因,造成的单线河流存在的伪节点、不合理悬挂点等问题。[0067] (2)解决空间数据拓扑规范性问题:真实世界中,河流交汇处贯连相通;体现在空间数据上,2条或多条单线河流相交应有节点即相交处应打断。[0068] (3)解决河流流向错误反向问题:因数据采集时未严格考虑河流流向,导致线要素起止点方向勾画不正确,致使河流流向错误反向问题。[0069] (4)解决寻找河网交汇终点问题:真实世界中,百川东到海,每条河流最终流向并交汇至一处;地图制图中,每个河网内各条河流交汇至图内某一点即河网终点。[0070] (5)解决河网分组问题:制图范围内可能存在多个河网系统,根据每个河网唯一的交汇终点进行河网分组,为后续组内河流分级做准备。[0071] (6)解决河流分级问题:对每个河网内河流不仅按Strahler河流分级法进行分级,还需对最上游河流按长度进一步分级,以达到较佳的河流渐变效果。[0072] (7)解决河流渐变符号化表达问题:依据河流分级值大小分别设置线粗为0.1mm‑0.5mm的蓝色线型,符号化完成地图河流单线渐变的绘制。[0073] 需要说明的是,在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详细描述的部分,可以参见其它实施例的相关描述。[0074] 本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。[0075] 本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式计算机或者其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。[0076] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。[0077] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。[0078] 尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。[0079] 显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。[0080] 本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包括这些改动和变型在内。

专利地区:湖北

专利申请日期:2024-04-11

专利公开日期:2024-06-18

专利公告号:CN118037883B


以上信息来自国家知识产权局,如信息有误请联系我方更正!
电话咨询
到底部
搜本页
回顶部