论文答辩演讲稿

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

标注层解决方案:
开始
初始化处理标注类对象ห้องสมุดไป่ตู้
得到下一个要标注的点地物 否
调用处理标注类对象的函数对 得到的点地物避让标注
所有要标注的点地物是否 已经全部处理

结束
处理标注类对象标注一个点地物流程图:
开始 得到点地物的位置和要标注内 容 得到在原位置绘制标注时的标 注轨迹 得到该轨迹对应到栅格矩阵中 所占据的栅格的索引集合
关于设备坐标与栅格矩阵坐标的一些计算:(栅格矩阵坐 标系与设备坐标系类型相同,原点在左上角顶点) 设备上的点(x,y)对应到栅格矩阵的点(x1,y1)其中 x1 = x+ 栅格总列数/3*栅格边长 ,y1 = y + 栅格总行数/3*栅 格边长; 栅格矩阵上任意一点(x,y)所在栅格的索引值 = x/栅格 边长 + y/栅格边长*栅格总列数 ; 栅格索引值为n的栅格左上角顶点(x,y)为: x = (n % 栅格总列数)* 栅格边长; y = (n / 栅格总列数)* 栅格边长; 同理可得该栅格的右下角顶点的坐标值。 在这些计算公式的支持下,得到如下图中所示的标注“广 州”实际占据的栅格集合是很方便的。
关于栅格矩阵中每个栅格的占位与否记录情况,系统采用 数组形式记录。数组类型为64位的无符号整数。系统将所 有栅格依次与数组中整数的0~63位进行一一对应,比如数 组第0个整数就记录了第0~63个栅格的占位与否情况,而 第1个整数则记录了第64~127个栅格的占位与否情况,依 此类推。数组中整数的某一位为1,则表示对应栅格已被 占,否则没被占。
课题解决方案的特点
课题实现方案的主要计算都是无符号整数运算和位运算, 速度快,在数据多达千万个标注数量的情况下,能在60 秒内进行占位处理; 比较省内存。解决方案是使用“位”(bit)来存储标注 的位置记录的,一个栅格的占位与否记录只需要用一“位” 来存储,于是1亿个栅格只需要1亿个bit来存储,即 100000000/8/1024/1024 = 12M内存存储占位与否记录。 如果一个栅格大小为8*8像素,一个瓦片大小为256*256 像素,那么一个瓦片占据了65536 / 64 = 1024个栅格, 而12M内存就可以记录 100000000 / 1024 = 97656 个这 样大小的瓦片中的所有标注位置。同理,一千万个这样的 瓦片只需要1.3G左右的内存存储标注位置记录。
逐一判断该集合中的栅格 是否有已被占位 有

将集合中的所有栅格的 占位记录设置成已占 避让成功 进行避让处理
将新索引集合中的所有栅格的 占位记录设置成已占 根据避让得到的平移坐标平移 标注 避让失败
在原位置绘制标注
绘制平移后的标注 结束
栅格矩阵:
在程序处理时,将设备划分成若干栅格: 每个栅格大小为n*n,单位:像素 划分时,边缘处可能出现不足n*n情况, 此时按照一个栅格算。 为了支持如下图“哈尔滨”的效果,特将
基于栅格索引的网络地图标注 算法设计与实现
计科061班 董文韬
开发环境与工具
基于VS08的WTL项目类型 关键技术支持: GeoStar底层组件 WTL窗口分割
程序实现任务
支持地图的多图层绘制和显示 支持鼠标拖曳漫游地图 支持地图的局部区域放大、缩小 支持对地图进行分图层的地物查询 分图层对选中点地物动态避让标注
标注避让处理:
如右图,标注“澳门”的原位置对应的栅格 集合与已经绘制的“香港”对应的栅格集合的 交集不为空,那么“澳门”不能在原位置绘制 需要避让处理。 避让处理时,在原位置附近一定范围内寻找可绘制的位置。程序处理 时是设置栅格集合的偏移量,由近及远顺时针分8个方向进行避让的。如 果避让成功,即找到可绘制位置,则绘制该标注,如果避让失败,则不 绘制该标注。 如下图,“澳门”避让成功: (关于栅格类的解决方案 详见论文)
课题的应用
GIS领域一种重要的解决方案:(红色部分为本课题)
开始
开始
绘制所有地物
客户端发送请求
根据要求对地物进行标注
服务端瓦片拼接并发送地图
将标注转换成注记并瓦片分割
客户端接受数据并显示
瓦片分块存储
结束
结束
处理数据流程
服务流程
设备栅格扩大化,扩大成设备栅格的9倍,形成九宫图式样。在处理时, 九宫图中心部分与设备对应,即设备标注占位记录几乎全部存储在九宫 图中心部分。
如果不进行扩大化,就不能对“哈尔滨”的“滨”进行占位记录,在 处理时就不能支持标注只显示部分的效果。相反,进行扩大化后, “哈尔滨”的“滨”避让到设备外,但此时可以占位,于是在该位置 进行标注“哈尔滨”的绘制。 栅格索引的编号是从0开始的,如:第0行第0列为0号栅格,第0行第 1列为1号栅格,第0行第2列为第2号栅格,依此类推。如下图:
算法设计与实现
算法原理:
界面上看到的地图实际上是若干图层重叠绘制的效果,而图层与 图层之间是独立的。程序中使用了Map组件对图层进行管理,在向界 面绘制地图的时候,依次绘制每个图层,于是就可以得到操作结果。 为了实现课题,程序扩展了Map组件中的图层接口,命名为标注 层。另外,在标注层中设置了标注层名的公有成员变量和地物类类型 的vector容器私有成员变量,该容器变量是用来存储图层管理中所有 图层对应的地物类组件接口指针的。当用户每选中显示一个新的图层, 如果该图层对应的地物类是点类型那么系统将其添加到标注层的容器 变量中。在绘制标注层的时候,对要向界面显示的地图中的点地物进 行避让标注。 简单的说,算法原理就是:创建对所选图层的点地物动态避让标 注的标注层,并将其添加到图层管理中,在绘制的时候与其它图层先 后向界面绘制输出。
相关文档
最新文档