4 嵌入式GIS缓存机制
GIS数据在嵌入式设备中以网格单位来管理,加载一个网格单元,淘汰一个网格单元。设置缓冲网格单元数量上限值和下限值。一旦缓冲网格单元的数量超过上限值溢出时,立即启动淘汰算法,使得缓冲区达到设定的下限值。 数据加载是被动的,即不主动加载数据,而是等到用户发出刷新地图命令时,根据当前窗口可视范围来计算需要加载哪些数据,然后在缓冲区中查找是否已经加载过,没有加载则从文件中读取数据到缓冲区中。图5所示,为一次平移窗口底层所作的缓存操作。左边的图是地图刚刚装载时的缓存状态,红色虚线框表示当前地图的可视范围,绿色方框表示被加载过了网格数据,右图显示用户向右平移了视口,导致系统被动加载了蓝色部分的网格数据,而之前已经加载的部分绿色网格数据仍然在缓存中。
图5:一次平移窗口操作的缓存机制 Fig.5 Cache mechanism of once translating window operation 淘汰算法是依据数据空间位置进行的,即先淘汰出离当前窗口显示数据最远的网格单元数据,直到缓冲区大小达到下限或者只剩下当前需要使用的网格单元数量。图7所示,先淘汰红色部分网格数据,再淘汰紫色部分网格数据。横向上如此淘汰数据,纵向上依然如此。
图6:淘汰机制 Fig.6 Elimination mechanism 5 结束语 以上思路已在我们自主研发的嵌入式GIS平台GridGIS Mobile SDK 得到应用,实验表明,此方法极大地提升了地图显示的速度,支持海量矢量地图数据的浏览,解决了嵌入式GIS在各个行业应用中的效率瓶颈。
参考文献
[1]胡泽明,岳春生,王志刚.嵌入式GIS系统实时响应的软件方法实现 [J].测绘科学,2007.01,第32卷,第1期:98-99。 HU Ze-ming,YUE Chun-sheng,WANG Zhi-gang The software methods realization to improving real-time response in embedded GIS [J].Science of Surveying and Mapping,January 2007,Volume 32 , Issue 1: 98 - 99 .(in Chinese) [2]夏 颖,张曙光,张 航.空间数据检索在嵌入式GIS中的应用.计算机应用,2002.12,第22卷,第12期:119-123。 Xia Yin,Zhang Shu-guang,Zhang Hang.Application of spatial data index in embedded GIS [J].Computer Applications, December 2002, Volume 22 , Issue 12: 119 - 123 .(in Chinese) [3]Ningtao Chen,Nengchao Wang and Baochang Shi.A new algorithm for encoding and decoding the Hilbert order[J].SOFTWARE-PRACTICE AND EXPERIENCE,July 2007, Volume 37 , Issue 8: 897 - 908 .
Embedded GIS data for the organization model and access mechanism
Chen Yujin1 Li Quan1 1 Nanjing Creable Technology Co., Ltd. Nanjing 21008
Abstract: The map shows that efficiency is embedded GIS system has been the core issue. On the one hand, low-performance embedded systems processors, memory capacity on the other hand, GIS data volume, complexity, for this to highlight the contradictions, the paper proposed a new organizational model and GIS data access mechanism , In the I / O phase, from the logical and physical levels, to minimize redundant data on the reading and processing, security map shows the rapid. Key words: embedded GIS, vertical grade, grid indexing, Hilbert sort, cache |