地图标注(一)

news/2024/7/8 5:30:05 标签: 网格, 算法, 数据结构, 图形, 优化, 活动

地图标注

陈玉进 李泉 南京跬步科技有限公司 http://www.creable.cn

地图标注,亦称 地图注记,是电子地图显示的主要内容之一,注记位置的选择是否恰当,排列是否美观,将直接影响到电子地图的清晰易读性和使用价值。所以,在移动注记中,如何控制注记的位置和布局,以及解决注记之间的冲突和压盖问题,是解决注记自动配置问题的重点和关键。在传统地图创建中,制图人员配置注记需要顾及到地图的整体效果,某种要素注记位置的选择要顾及周围其它要素的图形及注记位置的选择,这一过程是人脑高度智能性的活动,因此要用计算机完成电子地图注记自动配置软件必须采用一定机制,才能取得满意的效果。目前,电子地图注记自动配置多数采用局部搜索法,该算法需采用较多的交互方式来弥补其不足之处,从而降低了配置的效率。为了克服局部搜索法的缺点近年来,不少学者在将组合优化理论应用于地图注记自动配置方面作了许多尝试。比较著名的算法有物理松弛法、整型规划及连续梯度下降法等。本文介绍了一种基于栅格的自动标注算法来检测冲突和压盖,以改善电子地图中移动注记配置的速度和效果。该算法计算量小,并且能够将电子地图中各种要素统一进行注记自动配置。

自动标注需要注意的地方,首先要求不能有叠加的情况(其中标注不能压盖标注,标注不能压盖点状要素),再次要求充分利用屏幕空间来标注,最后是符合读者阅读习惯,即从上到下,从左到右顺序标注。

地图要素可以分为三类:点、线、面。根据地图需要展现的主要要素的不同,标注策略有些不一样,例如导航为主的地图,则线标注是首先要进行的,点、面其次。读者可以自行设计标注策略。下面以先标注线为例说明地图标注的步骤。

地图标注步骤:

              我们采用网格索引类似的方式,根据文字大小计算出一个网格尺寸(保证一个文字占用的网格数目是定值),建立一个屏幕网格索引(采用的是屏幕坐标)。

              将所有的地图要素的坐标转换从实际坐标转换为屏幕坐标。

              因为标注不能压盖点状要素,所以计算出所有点状要素所占据的网格,并将这些网格标记为不可标注。

              标注所有点图层上的所有要素,标注的位置可以在点的右边、左边或者上面。标注之后,需将标注所占用网格设置为不可标注。

              标注所有线图层上的所有要素,标注按照线所占网格平均标注,采用等距离标注的策略。标注之后,需将标注所占用网格设置为不可标注。

              标注所有面图层上的所有要素,标注在面所占据网格的中心。标注之后,需将标注所占用网格设置为不可标注。

栅格标注算法数据结构:使用与屏幕网格一致的二维数组来标记其对应的网格是否可标注。设该二维数据为flag,若flag[2][3]=false,则说明第二行第三列网格可以进行标注。

下面将用三个小节来详细说明点、线、面标注各自不同之处。

5.1 点标注

       点标注的位置可以在点的右边、左边或者上面,首先判断右边的位置是否可以标注(标注需要占用网格是否可用),如不可标注则判断左边的网格,同理判断上面的网格

算法:设计ptIndex函数能够计算点占用的网格网格行号=(int)(点的y坐标÷网格高度)网格列号=(int)(点的x坐标÷网格宽度)

       举例说明如下,如图1所示,将屏幕切分为若干个网格,每个网格可以容纳下一个汉字,标注每个点状要素是,计算需要占用哪些网格。假设1号点的name为“南京大学”,标注时需要四个网格,判断需要第五行六列到九列网格用来标注。而这四个网格均可标注,所以将“南京大学”这四个字绘制在网格中,并将这四个网格相应的flag设置为true2号点的右边有一个网格被点占用,所以标注到左则,并将这四个网格相应的flag设置为true

 

 

5.2     线标注

线标注首先要计算出这条线所占用的网格,然后按照从左到右,从上到下的顺序等分进行线标注。

算法

     判断线的走向。根据线的最小外包矩形(MBR)可以判断出线的大致走向。设线的MBR的横坐标分别为xminxmax,纵坐标分别为yminymax。如图2,左图中的线的MBR符合条件(ymax-ymin)>(xmax-xmin)则说明此线是南北走向(标注时从上到下),反之则是东西走向(标注时从左到右)。

 d7

 

     设计plIndex函数能够计算线所占网格,这里可以采用第二章介绍的Bresenham整数栅格化算法

     设计标注策略,本文采用等分标注策略,即每个文字之间的空相等的网格数目。如果发现某个网格不可标注,则向前或者向后移动一个网格再试,还是不能标注就整条线不标注。


http://www.niftyadmin.cn/n/508310.html

相关文章

地图标注(二)

举例说明如下,如图3所示,阴影部分就是线所占网格,将“中山东路”四个字等分标注在四个网格中。判断出该线是东西走向,进行从左到右的标注,计算出线所占网格公18个,分别标注在第3个、第7个、第11个、第15个网…

smobiler中实现页面切换_原来PPT切换可以这么高端

听说有部叫《东宫》的电视剧,在转场时使用了PPT似的切换效果,因此上了热搜。仔细一看,还蛮像的哦~我来做两页模仿一下。尽管被动上了热搜,但是PPT表示:“士别三日当刮目相待,时代在进步,我的切换…

移动互联网

手机应用,正走进我们的视野,潜移默化地改变着我们的生活方式。正如十几年前,我们对互联网还比较陌生,手机还只是奢侈品,根本没想到短短这十年的时间会有如此大的发展。移动互联网,正掀起IT应用的又一个浪潮…

轧机用弹性阻尼体反力计算_仿真模拟弹性波在固体结构中的振动传播

COMSOL Multiphysics 软件 5.5 版本中提供了一个节省内存的物理场接口,用于模拟弹性波在固体中的传播(结构中的振动)。 弹性波,时域显式 接口基于时域显示时间积分方案的高阶间断伽辽金法,可以实现声学大型模型的高效多核计算。该接口可实现多…

GIS属性查找(基于Trie的词典库文件结构的设计)

GIS属性查找 陈玉进 李泉 南京跬步科技有限公司(http://www.creable.cn) 词是最小的具有独立活动的有意义的语言层份。(汉语中,词与词之间没有明显的分隔标记,而是连续的汉字串,为了让计算机更好地处理中文&#xff0c…

GIS开窗裁减(Cohen-Sutherland线段裁减的改进算法)

Cohen-Sutherland线段裁减的改进算法 陈玉进 李泉 南京跬步科技有限公司 http://www.creable.cn 摘要:Cohen-Sutherland线段裁减算法,对于线段全部落入视口内、或线段位于视口外一侧的情况判断较容易,而除此之外的情况…

第三次握手为什么没有序列号_错过后悔系列---关于三次握手与四次挥手面试官想考我们什么?...

作者:帅地链接:https://juejin.im/post/5ccd0dfc6fb9a0324a08bb73在面试中,三次握手和四次挥手可以说是问的最频繁的一个知识点了,我相信大家也都看过很多关于三次握手与四次挥手的文章,今天的这篇文章,重点…

基于GML数据源的GIS平台关键技术

基于GML数据源的GIS平台关键技术 地理标记语言GML(Geography Markup Language),是一种开放的XML格式的GIS数据形式,具有字符形式、标准化、可扩展、通用性强等特点,有别于现有常用的二进制形式的GIS数据,出…