CN109147547A - 一种基于矢量瓦片的注记选位与动态避让方法 - Google Patents

一种基于矢量瓦片的注记选位与动态避让方法 Download PDF

Info

Publication number
CN109147547A
CN109147547A CN201810832875.6A CN201810832875A CN109147547A CN 109147547 A CN109147547 A CN 109147547A CN 201810832875 A CN201810832875 A CN 201810832875A CN 109147547 A CN109147547 A CN 109147547A
Authority
CN
China
Prior art keywords
annotation
line
text
data
vector tile
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.)
Pending
Application number
CN201810832875.6A
Other languages
English (en)
Inventor
李爱勤
张兆阳
陈张建
周海鹏
叶哲璐
胡冯伟
刘欣
周慧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BEIJING GEOWAY SOFTWARE Co Ltd
ZHEJIANG ACADEMY OF SURVEYING & MAPPING
Original Assignee
BEIJING GEOWAY SOFTWARE Co Ltd
ZHEJIANG ACADEMY OF SURVEYING & MAPPING
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by BEIJING GEOWAY SOFTWARE Co Ltd, ZHEJIANG ACADEMY OF SURVEYING & MAPPING filed Critical BEIJING GEOWAY SOFTWARE Co Ltd
Priority to CN201810832875.6A priority Critical patent/CN109147547A/zh
Publication of CN109147547A publication Critical patent/CN109147547A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09BEDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
    • G09B29/00Maps; Plans; Charts; Diagrams, e.g. route diagram
    • G09B29/10Map spot or coordinate position indicators; Map reading aids

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • Business, Economics & Management (AREA)
  • Educational Administration (AREA)
  • Educational Technology (AREA)
  • General Physics & Mathematics (AREA)
  • Processing Or Creating Images (AREA)

Abstract

本发明公开了一种基于矢量瓦片的注记选位与动态避让方法,包括:设计并定义矢量瓦片服务和数据组织结构,结合用户设置的注记字体大小、文本间距等相关参数,计算要素注记的多个候选位置,并通过权重阈值,对点注记、线注记在web前端模拟多线性进行全局动态避让处理,从而解决注记选位与布局过程中出现的冲突与压盖问题。

Description

一种基于矢量瓦片的注记选位与动态避让方法
技术领域
本发明涉及地理信息处理领域的电子地图制图综合方法,具体来说,涉及一种基于矢量瓦片的注记选位与动态避让方法。
背景技术
相较于传统的栅格瓦片地图生产工艺和服务模式,矢量瓦片技术具有数据更新周期短、网络传输数据量小、地图样式可定制、支持要素拾取、可交互式查询等优势,也逐渐成为网络地图服务的热点和主流加工方式。但网络地图服务除了显示地图外,其核心功能是将地图承载的地理要素进行合理化表达,帮助用户更好地认知和识别地物,而矢量瓦片地图对注记的自动化配置程度、图形表达效果和前端渲染效率,是保证地物可认知程度和在线地图服务质量的关键。
矢量瓦片地图注记自动化配置需要满足特定的限制条件,包括瓦片内冲突检测、密度控制、范围选择、避免压盖和优先级显示等,同时按照金字塔模型被“瓦片”分割后的地理要素在拼接处不能产生断裂或冲突等视觉不连贯的现象。
现有技术中,在注记候选位置的确定方面,主要成果有固定位置模型、滑动模型以及基于格网等近似连续的注记模型等。但位置候选区并非在注记所有可配置的候选区中寻求最佳位置,其他算法复杂程度高,用户配置新的注记字体样式和间隔后,算法参数重新配置与服务更新比较繁琐,并且,点要素、线要素交叉与集中区域,注记配置的位置和视觉效果往往不佳。
针对相关技术中的问题,目前尚未提出有效的解决方案。
发明内容
针对相关技术中的上述技术问题,本发明提出一种基于矢量瓦片的注记选位与动态避让方法,能够根据用户配置的注记样式自动配置注记摆放位置,并根据要素权重值在前端进行全局动态避让处理,解决注记选位与布局过程中出现的冲突与压盖问题。
为实现上述技术目的,本发明的技术方案是这样实现的:
一种基于矢量瓦片的注记选位与动态避让方法,具体包括以下步骤:
步骤1,根据当前屏幕坐标范围计算、下载并解析对应层级的矢量瓦片数据,设计并定义矢量瓦片服务元数据与实体数据组织结构。其中,服务元数据对服务及服务包含的图层信息、属性信息进行描述,结合Tiles瓦片数据表、结合服务元数据中的图层信息,实现要素几何类型、属性信息、空间信息及偏移信息的完整表达。
步骤2,下载并解析当前层级服务样式的组织结构与注记配置参数。
步骤3,将线注记切割为文本注记和编号注记,随着用户设置的样式参数,实时寻求注记显示的定位点和最佳候选区域,根据注记文本间距计算文本显示位置,具体包括:
步骤3.1,线要素属性数据中,注记文本与编号在一条属性项中,根据前端显示需要切割成对应的线文字注记与线编号注记;
步骤3.2,以八方位计算线要素方向线,确认线注记与线编码排列摆放起始方向;
步骤3.3,根据注记文本间距计算每个注记文本摆放位置,线注记文本与线编号文本之间间隔本发明方法根据需要默认提供20-30像素;
步骤4,计算点注记、线注记的box值及线注记的旋转方向,包括:
步骤4.1,以点要素坐标为圆心,根据用户设置的点注记文本字体的大小、注记与标注符号间距离、背景图片的高度和宽度,依次计算出右、左、下、上四个环绕方向的点注记文本box值;
步骤4.2,根据用户设置的线注记、线编号文本字体的大小、文字到背景边框的距离、背景变宽的高度和宽度,计算出线注记、线编号每个文本字体的box值,其中,考虑到线注记文本有角度偏转,每个box值扩大1.5倍。
步骤5,根据要素权重值对注记数据进行排序与避让处理,扩展要素显示权重参数,将点注记、线注记按照权重高级进行全局避让计算,使得注记数据疏密程度参差不齐时,点注记与线注记不在出现压盖,且均衡的分布在线要素两侧,使得地图表达内容更丰富,具体包括:
步骤5.1,根据要素的权重值,由大到小进行排序;
步骤5.2,将点注记数据添加到计算单元格中,点注记如果配置有图标符号,开启四宫格避让;
步骤5.3,点注记按照权重大小顺序进行四宫格递归检测,优先把权重值最高的要素开始放置在单元格中,后续其他注记进行四宫格递归避让监测过程中,显示优先级依次为右、左、下、上,计算是否与其他注记相交,返回避让过滤计算后的避让box和绘制坐标,其中,如果点注记外部标记为重要,则不参与避让计算,即使与其他注记进行了压盖,也显示,且排在最上面。
步骤5.4,将线注记数据添加到计算单元格中;
步骤5.5,计算线注记是否与其他注记相交,返回过滤计算后的避让box和绘制坐标。
步骤6,由于HTML5的多线程在IE浏览器不支持内存共享,子线程之间也无法通讯,为了提高响应速度和UI流畅度,本方法设计在主线程中模拟多线程的任务处理机制来提升绘制性能,由webgl模拟多线程获取并绘制避让后的注记数据,具体包括:
步骤6.1,监听帧响应时间,在每一帧的响应函数中,获取当前应该显示的瓦片;
步骤6.2,获取应该显示的瓦片中避让处理后的注记数据;
步骤6.3,根据当前的地图矩阵,重新计算点注记位置,并绘制;
步骤6.4,根据当前的地图矩阵,重新计算线注记每个点的位置,并根据计算避让后得出的旋转角度绘制线注记。
本发明的有益效果:有效的解决了矢量瓦片地图服务在注记选位与布局过程中出现的冲突和压盖问题,点注记均衡的分布与线要素两侧,地图表达内容更丰富,也清晰整洁。前端绘制过程中特殊的任务调度模式,降低了CPU资源占用率的同时,提高了UI响应的流畅度。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是根据本发明实施例所述的一种基于矢量瓦片的注记选位与动态避让方法的总体流程图;
图2是根据本发明实施例所述的一种基于矢量瓦片的注记选位与动态避让方法的矢量瓦片服务样式文件组织结构示意图;
图3是根据本发明实施例所述的一种基于矢量瓦片的注记选位与动态避让方法的线注记排列方向示例图;
图4是根据本发明实施例所述的一种基于矢量瓦片的注记选位与动态避让方法的线注记切割与选位示意图;
图5是根据本发明实施例所述的一种基于矢量瓦片的注记选位与动态避让方法的线注记与线编号切割显示实例效果图;
图6是根据本发明实施例所述的一种基于矢量瓦片的注记选位与动态避让方法的点注记、线注记全局避让实例效果图
图7a和7b是根据本发明实施例所述的一种基于矢量瓦片的注记选位与动态避让方法的注记避让前后对比效果图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,根据本发明实施例所述的一种基于矢量瓦片的注记选位与动态避让方法,包括以下步骤:
S1根据当前屏幕坐标范围计算、下载并解析对应层级的矢量瓦片数据;
S2下载并解析当前层级服务样式的组织结构与注记配置参数;
S3将线注记切割为文本注记和编号注记,随着用户设置的样式参数,所述样式参数包括注记文本间距,实时寻求注记显示的定位点和最佳候选区域;
S4计算点注记、线注记的box值及线注记的旋转方向,具体包括:
S41以点要素坐标为圆心,根据用户设置的点注记文本字体的大小、注记与标注符号间距离、背景图片的高度和宽度,依次计算右、左、下、上四个环绕方向的点注记文本box值;
S42根据用户设置的线注记、线编号文本字体的大小、文字到背景边框的距离、背景变宽的高度和宽度,计算线注记、线编号每个文本字体的box值;
S5根据要素权重值分别对点注记数据和线注记数据进行排序与避让处理,返回避让过滤计算后的避让box和绘制坐标;
S6模拟多线程,获取并绘制避让后的注记数据。
S1进一步包括:设计并定义矢量瓦片服务元数据与实体数据组织结构,其中,服务元数据对服务及服务包含的图层信息、属性信息进行描述,结合Tiles瓦片数据表、结合服务元数据中的图层信息,实现要素几何类型、属性信息、空间信息及偏移信息的完整表达。
作为优选,S3具体包括:
S31根据前端显示需要将线注记切割成对应的线文字注记与线编号注记;
S32以八方位算法确认线注记与线编码排列摆放起始方向,并结合注记文本间距计算每个注记文本摆放位置。
进一步的,S31中所述线注记包括公路注记,所述公路注记包括公路名称和公路编号。
进一步的,S5具体包括:
S51将点注记数据添加到计算单元格中,点注记如果配置有图标符号,开启四宫格避让;
S52将点注记按照权重大小顺序进行四宫格递归检测,计算是否与其他注记相交,返回避让过滤计算后的避让box和绘制坐标;
S53将线注记数据添加到计算单元格中;
S54计算线注记是否与其他注记相交,返回过滤计算后的避让box和绘制坐标;
进一步的,S52中如果点注记外部标记为重要,则不参与避让计算,即使与其他注记进行了压盖,也显示,且排在最上面。
进一步的,S6中采用webgl模拟多线程获取并绘制避让后的注记数据。
作为优选,S6具体包括:
S61监听帧响应时间,在每一帧的响应函数中,获取当前应该显示的瓦片中避让处理后的注记数据;
S62根据当前的地图矩阵,重新计算点注记位置,并绘制;
S63根据当前的地图矩阵,重新计算线注记每个点的位置,并根据计算避让后得出的旋转角度绘制线注记。
为了方便理解本发明的上述技术方案,以下通过具体使用方式上对本发明的上述技术方案进行详细说明。
在具体使用时,如图1至7所示,根据本发明所述的一种基于矢量瓦片的注记选位与动态避让方法,考虑到本专利方案会应用到web端、移动端和高清屏等多种终端设备,为了后续跨平台开发和维护,本实施例采用HTML5开发实现。详细的实施过程为:
步骤S001,解析矢量瓦片数据。矢量瓦片数据包括服务元数据和实体数据。服务元数据用来描述矢量瓦片的基础信息,采用JSON格式编码组织以键值对的形式来存储服务的相关信息,矢量瓦片服务至少包含一个图层,每个图层中又包含其图形要素和属性信息,服务元数据对服务以及服务包含的图层信息进行描述,详见表1至表3。矢量瓦片数据使用sqlate3作为数据存储媒介,tiles瓦片数据表遵循MBTiles扩展格式(扩展时相部分)。tiles瓦片数据表中tile_data是数据主体,数据采用JSON格式作为存储,使用utf-8编码、gzip压缩。其中如果存储字符串中带有’”换行等字符时,则需要讲其转换为转移符(详见JSON转义)。tiles瓦片数据表包括所有的瓦片数据和用于定位瓦片数据的一些值,需要组合服务元数据部分中图层的fields部分,数据部分为以图层名称为key的map,value中是数据的array,数组以“[”(左中括号)开始,“]”(右中括号)结束,值之间使用“,”(逗号)分隔,数组由数据几何类型、属性信息、空间信息、偏移信息(可以为空)四部分组成。
表1矢量瓦片服务基础信息表
字段名称 字段描述 备注
Id id
Name 名称
Version 版本 矢量瓦片格式的版本号
Desc 描述
Time 时间戳 该瓦片的时间版本,只做元数据记录用
Grid_Type 网格类型 tdt天地图格网
Grid_Unit 网格单位 枚举字段:degrees/meters经纬度/米
Grid_Base 网格大小 枚举字段:256/512格网大小256像素或512像素
Layers 所含图源 以图源图层名称为key的map结构:详见图源表
表2矢量瓦片服务图源信息表
字段名称 字段描述 备注
Id <u>图层</u>ID
Min_Zoom 开始级别
Max_Zoom 结束级别
Storage 存储地址/文件 存储数据文件的sqlite文件指向地址
Id_Field 主键字段名称
Bounds 范围 最大外包矩形范围
Canter 中心点 中心点
Count 要素数量 要素数量
Geometry_Type 几何类型 枚举,详见几何类型表
Fields 字段信息 数组,存储字段信息,详见字段类型表
表3矢量瓦片服务属性字段信息表
下面取“公路图层”中的一条来解释:[2,[249,″4305010313″,″盛莫路″,″″,0,″4202010313″,8],[[251,399,0,-1,1,-1,2,-7,0,-2,2,-5,1,-6,1,-4,2,-7,1,-6,1,-3,0,-7,0,-1,1,-9,0,-1]],[[1782]]。
1)几何类型:
数组中第一位为数据的几何类型,根据几何类型码表可以得出他的几何类型为LINESTRING,见表4。
表4矢量瓦片数据几何类型编码表
数据几何类型
0 UNKNOWN
1 POINT
2 LINESTRING
3 POLYGON
4 MULTIPOINT
5 MULTILINESTRING
6 MULTIPOLYGON
7 COLLECTI0N
2)属性信息
数组中第二位为非空间数据部分,与服务元数据部分中该图层的fields字段一一对应。
“公路图层”value中非空间数据部分值为[249,″4305010313″,″盛莫路″,″″,0,″4202010313″,8],服务元数据中“公路图层”field字段信息如下:
[{″name″∶″objectid″,″index″:0,″id″:true,″type″:″Number″},
{″name″:″fcode″,″index″:1,″id″:false,″type″:″String″},
{″name″:″fname″,″index″:2,″id″:false,″type″:″String″},
{″name″∶″roadcode″,″index″:3,″id″:false,″type″:"String"},
{"name":"fwidth","index":4,"id":false,"type":"Number"},
{"name":"display","index":5,"id":false,"type":"String"},
{"name":"fscale","index":6,"id":false,"type":"Number"}]
二者一一对应,转为map为:{objectid:249,fcode:"4305010313",fname:"盛莫路",roadcode:"",fwidth:0,display:"4202010313",fscale:8}
3)空间信息
数组中第三位为数据字段,本段为二维数组,记录图形在该格网的坐标,其中坐标为格网相对坐标,X,Y交错排列。[[251,399,0,-1,1,-1,2,-7,0,-2,2,-5,1,-6,1,-4,2,-7,1,-6,1,-3,0,-7,0,-1,1,-9,0,-1]],数组中的第一位为格网坐标,剩余位数为与上一位的相对坐标。二维数组的个数表示该图形在格网中的段数。
特殊情况如果该图形为POLYGON MULTIPOLYGON且占满整个格网,可以用[["F"]]来描述。例如:[6,[100000,"北京市",0,],[["F"]]]行政区划:北京市,在该格网内全部占满,同等于[6,[100000,"北京市",0,],[[-12,-12,536,0,0,536,-536,0,0,-536]]]。
步骤S002,解析服务样式文件。矢量瓦片服务不同层级每一类注记样式的表达可能会存在差异,为了减小整个服务注记样式文件的大小和提高循环获取注记样式的效率,采用js来表达。js样式文件组织结构为三层,第一级也就是最外层为瓦片层级,第二级为图层要素,关联瓦片数据源;第三层为属性过滤条件及注记样式。样式解析过程中,调用转换函数,将每个注记转入该函数,对应读取到对应注记的样式参数信息,参考表5。
表5用户外定义注记样式参数表(部分)
步骤S003:线注记切割与选位计算。线要素属性数据中,注记文本与编号在一条属性项中,需要根据用户外部设置的注记字间距,将线注记切割成线文字注记和线编码注记,最终线注记由若干个等间距的点组成;切割后的注记文本,依据八方位计算方法,确认注记起始摆放位置(见附图4)和用户外部设置的字间距进行选位计算。
设定线要素方位线与X轴之间逆时针夹角为方位角β,结合用户视觉阅读习惯,设定注记排列放下如下,参考附图3;
当0°≤β&lt;45°,由西到东排列;
当46°≤β&lt;90°,由北向南排列;
当91°≤β&lt;135°,由北向南排列;
当136°≤β&lt;180°,由西到东排列;
当181°≤β&lt;225°,由西到东排列;
当226°≤β&lt;270°,由北向南排列;
当271°≤β&lt;315°,由北向南排列;
当316°≤β&lt;360°,由西到东排列。
注记文本中心点的选位计算方法是,以方位角确认的起始摆放位置开始,等间距依次递归。选定每个注记文本的摆放中心点。
需要说明的是,步骤S003中,线注记文本与线编号文本之间间隔本发明方法根据需要默认提供20-30像素。
步骤004,计算注记box值。注记box值包括左上角和右下角两个位置,从而确认注记文本在显示屏中占用的像素位置。包括点注记box值计算和线注记box值计算。接下来单独详细描述每类注记的box计算方法。
点注记以中心坐标点位为圆心,文字环绕点注记四个方向,按摆放优先顺序设定为right、left、bottom、top;设定点注记坐标为P(x,y),pt[0]为x,pt[1]为y,graphicWidth:图片的宽度;graphicHeight:图片的高度;pointBackgroundGap:文字距离背景框的间距;graphicDistance:文字与点注记图标的距离;featureWidth:文字的最大宽度;featureHeight:文字的最大高度;partHieght:整个注记最大高度的一半。则四方位box计算公式为:
rightBox=[pt[0]-graphicWidth*0.5-pointBackgroundGap,
pt[1]-pointBackgroundGap-partHieght,pt[0]+graphicWidth*0.5+graphicDistance+featureWidth+pointBackgroundGap,pt[1]+featureHeight+pointBackgroundGap-partHieght];
leftBox=[pt[0]-graphicWidth*0.5-graphicDistance-featureWidth-pointBackgroundGap,
rightBox[1],pt[0]+graphicWidth*0.5+pointBackgroundGap,rightBox[3]];
bottomBox=[pt[0]-featureWidth*0.5-pointBackgroundGap,pt[1]-pointBackgroundGap-graphicHeight*0.5,pt[0]+featureWidth*0.5+pointBackgroundGap,pt[1]+graphicHeight*0.5+graphicDistance+pointBackgroundGap+featureHeight];
topBox=[bottomBox[0],pt[1]-graphicDistance-pointBackgroundGap-featureHeight-graphicHeight*0.5,bottomBox[2],pt[1]+graphicHeight*0.5+pointBackgroundGap];
线注记包括线文字注记和线编码注记,线文字注记需要计算出每个文字的box值,线编码注记需要计算出每个编号的box值。线文字注记需要沿着线要素走向垂直摆放,因此有角度偏转,本发明将线注记box值统一扩大为1.5倍。设定每个文字的真实坐标点P(x,y),pt[0]为x,pt[1]为y,注记文字的高度为lineHeight,则线文字注记box值计算公式为:
labelBox=[pt[0]-(style.lineHeight*1.5)*0.5,pt[1]-(lineHeight*1.5)*0.5,pt[0]+(lineHeight*1.5)*0.5,pt[1]+lineHeight*1.5*0.5];
线编码注记编码内容为label,用户外部设置参数为编码注记高度codeLineHeight、文本到背景边框距离codeLineBackgroundGap,背景宽度为w,则box值计算公式为:
w=feature.label.length*codeLineHeight;
minX=p[0]-w*0.5-codeLineBackgroundGap;
maxX=p[0]+w*0.5+codeLineBackgroundGap;
minY=p[1]-codeLineHeight*0.5-codeLineBackgroundGap;
maxY=p[1]+codeLineHeight*0.5+codeLineBackgroundGap;
box=[minX,minY,maxX,maxY];
步骤005,全局动态避让。全局注记避让的原理是,先将权重值最高的要素注记摆放到当前屏幕对应大小的单元格中,再按照权重优先级依次逐个判断每个注记点rightbox摆放位置是否与其他注记产生冲突,点注记摆放过程中开启四宫格避让,依次判断right、left、bottom、top四个方位是否已有注记,如果四方位具有冲突,则该注记不显示。依次循环,将所有注记都避让摆放完成。需要说明的是,如果特殊要素用户外部输入设置参数为importance,不参与避让,那么该注记不参与避让计算,始终显示在最上层。
本方法将点注记、线注记全要素数据进行全局递归避让监测与动态配置过程中,力求选定每个注记文本与编码的最佳候选区。区别于传统的单类型属性信息过滤与其他复杂算法模型过滤,试验验证,本方法简单、高效,进行全局避让后,点注记均衡的分布与线要素两侧,地图表达内容更丰富,也清晰整洁。
需要说明的是,判断box是否能够摆到单元格中,本方法采用并改良第三方开源组件GridIndex来实现,将当前屏幕大小的各自判断box是否能摆到单元格内,我们采用第三方开源组件GridIndex来做。它将当前屏幕大小的格子,划分成多个25*25的格子(格子的大小可以自定义),当往里面插入box的时候,先判断box落入到那些25*25的格子中,然后在小格子中找到已经存在的box,然后判断他们是否相交。如果任意一个相交,则插入失败,有压盖。
步骤006,前端注记高速绘制。由于HTML5的多线程在IE浏览器不支持内存共享,切子线程之间无法通讯,为了提高响应速度和UI流畅度,本方法设计在主线程中模拟多线程的任务处理机制来提升绘制性能。具体包括以下子步骤:
1)webgl模拟多线程获取并绘制避让后的注记数据。
2)监听帧响应时间,在每一帧的响应函数中,获取当前应该显示的瓦片;
3)获取005步骤返回的应该显示的瓦片中避让处理后的注记数据;
4)根据当前的地图矩阵,重新计算点注记位置,并绘制;
5)根据当前的地图矩阵,重新计算线注记每个点的位置,并根据计算避让后得出的旋转角度绘制线注记。
综上所述,借助于本发明的上述技术方案,有效的解决了矢量瓦片地图服务在注记选位与布局过程中出现的冲突和压盖问题,点注记均衡的分布与线要素两侧,地图表达内容更丰富,也清晰整洁。前端绘制过程中特殊的任务调度模式,降低了CPU资源占用率的同时,提高了UI响应的流畅度。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种基于矢量瓦片的注记选位与动态避让方法,其特征在于,包括以下步骤:
S1 根据当前屏幕坐标范围计算、下载并解析对应层级的矢量瓦片数据;
S2 下载并解析当前层级服务样式的组织结构与注记配置参数;
S3 将线注记切割为文本注记和编号注记,随着用户设置的样式参数,所述样式参数包括注记文本间距,实时寻求注记显示的定位点和最佳候选区域;
S4计算点注记、线注记的box值及线注记的旋转方向,具体包括:
S41 以点要素坐标为圆心,根据用户设置的点注记文本字体的大小、注记与标注符号间距离、背景图片的高度和宽度,依次计算右、左、下、上四个环绕方向的点注记文本box值;
S42 根据用户设置的线注记、线编号文本字体的大小、文字到背景边框的距离、背景变宽的高度和宽度,计算线注记、线编号每个文本字体的box值;
S5根据要素权重值分别对点注记数据和线注记数据进行排序与避让处理,返回避让过滤计算后的避让box和绘制坐标;
S6 模拟多线程,获取并绘制避让后的注记数据。
2.根据权利要求1所述的基于矢量瓦片的注记选位与动态避让方法,其特征在于,S1进一步包括:设计并定义矢量瓦片服务元数据与实体数据组织结构,其中,服务元数据对服务及服务包含的图层信息、属性信息进行描述,结合Tiles瓦片数据表、结合服务元数据中的图层信息,实现要素几何类型、属性信息、空间信息及偏移信息的完整表达。
3.根据权利要求1所述的基于矢量瓦片的注记选位与动态避让方法,其特征在于,S3具体包括:
S31 根据前端显示需要将线注记切割成对应的线文字注记与线编号注记;
S32 以八方位算法确认线注记与线编码排列摆放起始方向,并结合注记文本间距计算每个注记文本摆放位置。
4.根据权利要求3所述的基于矢量瓦片的注记选位与动态避让方法,其特征在于,S31中所述线注记包括公路注记,所述公路注记包括公路名称和公路编号。
5.根据权利要求1所述的基于矢量瓦片的注记选位与动态避让方法,其特征在于,S5具体包括:
S51 将点注记数据添加到计算单元格中,点注记如果配置有图标符号,开启四宫格避让;
S52将点注记按照权重大小顺序进行四宫格递归检测,计算是否与其他注记相交,返回避让过滤计算后的避让box和绘制坐标;
S53 将线注记数据添加到计算单元格中;
S54 计算线注记是否与其他注记相交,返回过滤计算后的避让box和绘制坐标。
6.根据权利要求5所述的基于矢量瓦片的注记选位与动态避让方法,其特征在于,S52中如果点注记外部标记为重要,则不参与避让计算,即使与其他注记进行了压盖,也显示,且排在最上面。
7.根据权利要求1所述的基于矢量瓦片的注记选位与动态避让方法,其特征在于,S6中采用webgl模拟多线程获取并绘制避让后的注记数据。
8.根据权利要求1或7所述的基于矢量瓦片的注记选位与动态避让方法,其特征在于,S6具体包括:
S61 监听帧响应时间,在每一帧的响应函数中,获取当前应该显示的瓦片中避让处理后的注记数据;
S62 根据当前的地图矩阵,重新计算点注记位置,并绘制;
S63 根据当前的地图矩阵,重新计算线注记每个点的位置,并根据计算避让后得出的旋转角度绘制线注记。
CN201810832875.6A 2018-07-26 2018-07-26 一种基于矢量瓦片的注记选位与动态避让方法 Pending CN109147547A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810832875.6A CN109147547A (zh) 2018-07-26 2018-07-26 一种基于矢量瓦片的注记选位与动态避让方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810832875.6A CN109147547A (zh) 2018-07-26 2018-07-26 一种基于矢量瓦片的注记选位与动态避让方法

Publications (1)

Publication Number Publication Date
CN109147547A true CN109147547A (zh) 2019-01-04

Family

ID=64798973

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810832875.6A Pending CN109147547A (zh) 2018-07-26 2018-07-26 一种基于矢量瓦片的注记选位与动态避让方法

Country Status (1)

Country Link
CN (1) CN109147547A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110245200A (zh) * 2019-05-30 2019-09-17 浙江浙大中控信息技术有限公司 一种电子地图点状要素防压盖自动标注的方法
CN110737737A (zh) * 2019-09-19 2020-01-31 中国国土勘测规划院 一种国土矢量数据渲染方法及系统
CN112559666A (zh) * 2021-02-19 2021-03-26 智道网联科技(北京)有限公司 注记的处理方法、装置及电子设备
CN115510337A (zh) * 2022-09-14 2022-12-23 广西壮族自治区自然资源遥感院 一种三维立体注记调度显示的方法
CN116595025A (zh) * 2023-07-18 2023-08-15 浙江省测绘科学技术研究院 矢量瓦片的动态更新方法、终端和介质
CN117333585A (zh) * 2023-10-26 2024-01-02 山东省国土测绘院 一种基于矢量瓦片地图的注记处理方法及系统
CN117408000A (zh) * 2023-10-24 2024-01-16 哈尔滨航天恒星数据系统科技有限公司 一种管线点坐标引出注记自动标注与避让的方法、电子设备及存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101901494A (zh) * 2010-07-23 2010-12-01 中国科学院计算技术研究所 自动实现地图注记的方法及其系统
CN102136218A (zh) * 2011-03-17 2011-07-27 武汉大学 一种计算机地图制图中的地图注记自动配置方法
CN102289991A (zh) * 2011-09-05 2011-12-21 武汉大学 一种基于视觉变量的地图注记自动分类配置方法
CN103839479A (zh) * 2012-11-20 2014-06-04 江苏省测绘研究所 一种高效电子地图注记交互方法
US20140189598A1 (en) * 1999-07-22 2014-07-03 Tavusi Data Solutions Llc Graphic-information flow method and system for visually analyzing patterns and relationships
CN104820714A (zh) * 2015-05-20 2015-08-05 国家电网公司 基于hadoop的海量瓦片小文件存储管理方法
CN105824905A (zh) * 2016-03-15 2016-08-03 厦门精图信息技术有限公司 一种电子地图聚合图层的构建、操作方法及装置
CN107423445A (zh) * 2017-08-10 2017-12-01 腾讯科技(深圳)有限公司 一种地图数据处理方法、装置及存储介质
CN108022273A (zh) * 2016-10-28 2018-05-11 中国测绘科学研究院 一种图数可拆合制图方法及系统
CN108287929A (zh) * 2018-03-06 2018-07-17 霍亮 基于WebGL的三维GIS技术平台

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140189598A1 (en) * 1999-07-22 2014-07-03 Tavusi Data Solutions Llc Graphic-information flow method and system for visually analyzing patterns and relationships
CN101901494A (zh) * 2010-07-23 2010-12-01 中国科学院计算技术研究所 自动实现地图注记的方法及其系统
CN102136218A (zh) * 2011-03-17 2011-07-27 武汉大学 一种计算机地图制图中的地图注记自动配置方法
CN102289991A (zh) * 2011-09-05 2011-12-21 武汉大学 一种基于视觉变量的地图注记自动分类配置方法
CN103839479A (zh) * 2012-11-20 2014-06-04 江苏省测绘研究所 一种高效电子地图注记交互方法
CN104820714A (zh) * 2015-05-20 2015-08-05 国家电网公司 基于hadoop的海量瓦片小文件存储管理方法
CN105824905A (zh) * 2016-03-15 2016-08-03 厦门精图信息技术有限公司 一种电子地图聚合图层的构建、操作方法及装置
CN108022273A (zh) * 2016-10-28 2018-05-11 中国测绘科学研究院 一种图数可拆合制图方法及系统
CN107423445A (zh) * 2017-08-10 2017-12-01 腾讯科技(深圳)有限公司 一种地图数据处理方法、装置及存储介质
CN108287929A (zh) * 2018-03-06 2018-07-17 霍亮 基于WebGL的三维GIS技术平台

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
宋磊 等: "《矢量瓦片支持下的在线交互可视化工具设计与实现》", 《测绘通报》 *
樊文有、王玲玲、沈越驹等: "《大型网络拓扑的动态注记研究》", 《地理信息世界》 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110245200A (zh) * 2019-05-30 2019-09-17 浙江浙大中控信息技术有限公司 一种电子地图点状要素防压盖自动标注的方法
CN110737737A (zh) * 2019-09-19 2020-01-31 中国国土勘测规划院 一种国土矢量数据渲染方法及系统
CN112559666A (zh) * 2021-02-19 2021-03-26 智道网联科技(北京)有限公司 注记的处理方法、装置及电子设备
CN115510337A (zh) * 2022-09-14 2022-12-23 广西壮族自治区自然资源遥感院 一种三维立体注记调度显示的方法
CN115510337B (zh) * 2022-09-14 2023-05-09 广西壮族自治区自然资源遥感院 一种三维立体注记调度显示的方法
CN116595025A (zh) * 2023-07-18 2023-08-15 浙江省测绘科学技术研究院 矢量瓦片的动态更新方法、终端和介质
CN116595025B (zh) * 2023-07-18 2023-09-15 浙江省测绘科学技术研究院 矢量瓦片的动态更新方法、终端和介质
CN117408000A (zh) * 2023-10-24 2024-01-16 哈尔滨航天恒星数据系统科技有限公司 一种管线点坐标引出注记自动标注与避让的方法、电子设备及存储介质
CN117408000B (zh) * 2023-10-24 2024-04-09 哈尔滨航天恒星数据系统科技有限公司 一种管线点坐标引出注记自动标注与避让的方法、电子设备及存储介质
CN117333585A (zh) * 2023-10-26 2024-01-02 山东省国土测绘院 一种基于矢量瓦片地图的注记处理方法及系统
CN117333585B (zh) * 2023-10-26 2024-05-07 山东省国土测绘院 一种基于矢量瓦片地图的注记处理方法及系统

Similar Documents

Publication Publication Date Title
CN109147547A (zh) 一种基于矢量瓦片的注记选位与动态避让方法
CN105407494B (zh) 网络扩容方法及装置
CA2941114C (en) Network-aware product rollout in online social networks
CN104217073B (zh) 一种网络社团引力导引的可视化布局方法
WO2016131390A1 (zh) 电子地图展示方法、装置及电子设备
Sinnott et al. The Australia urban research gateway
US20220075838A1 (en) Taxonomy-based system for discovering and annotating geofences from geo-referenced data
Kim et al. Spatial optimization for regionalization problems with spatial interaction: a heuristic approach
CN104714961B (zh) 一种住宿地点推荐方法、装置及系统
US20160179760A1 (en) Photo narrative essay application
CN107797804A (zh) 生成前端交互界面的方法和装置
CN106844065A (zh) 消息显示方法、装置及智能终端
CN106445969A (zh) 一种全局兴趣探索推荐方法和装置
CN110267097A (zh) 基于分类特征的视频推送方法、装置及电子设备
Figueiredo et al. A two‐stage hub location method for air transportation in Brazil
Sun et al. A Web-based visual analytics system for real estate data
CN107659973A (zh) 基于密度改进K‑means算法的超密集网络分簇方法
CN106331879A (zh) 基于全景视频的弹幕显示方法及装置
CN105068779B (zh) 一种显示控制方法及装置
CN106708820A (zh) 一种信息显示方法及装置
CN116301348A (zh) 一种博物馆展厅个性化游览布局方法及系统
CN113835806B (zh) 一种页面布局方法、装置、电子设备及存储介质
CN109934932A (zh) 一种基于增强现实技术实现信息推送的方法及系统
US20160170611A1 (en) Map with different degrees of overlapping geocoded pixels
US20230418847A1 (en) Methods and Systems for Querying Data Within a Geographical Boundary Using a Query Tool

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20190104

RJ01 Rejection of invention patent application after publication