针对GIS(地理信息系统)中大量特殊符号不得不用程序符号进行描述和表达,而程序符号与软硬件环境耦合度高,通用性差,难以共享的问题,提出了一种具有编程能力的可支持程序符号的平台无关通用符号描述和表达方法。将虚拟机技术引入到符号的描述和表达过程中,定义一个专门用于符号描述和表达的抽象机器——符号虚拟机。利用符号虚拟机特有的可编程的指令来描述和表达符号,使符号不依赖于任何特定的软硬件平台,同时具有可编程定制的能力,能够满足各种专业应用对程序符号的需求。
现有的符号都是基于具体、相互独立和封闭的平台,标准不统一,互不兼容,不同平台间符号共享非常困难,导致符号利用效率低下,重复开发严重。
现有的GIS基本上都用固定的符号构造模板来描述符号,只能描述模板所规定类型的符号,描述能力有限,很多地图符号在GIS中无法表达。
OGC已经制定了一系列的WEB服务标准(WMS、WFS、WCS),但没有制定符号服务的标准,难以实现网络环境下符号的共享与互操作。
虚拟机具有很好的跨平台性,在进行软件移植时,只需要移植虚拟机,所有针对虚拟机设计的软件都可以不加修改地移植到新的平台上,基于虚拟机的符号化正是利用这一特性实现符号共享的。同时它利用符号虚拟机的指令来解决符号描述问题。
其基本原理是定义一个专门用于符号化工作抽象机器(即符号虚拟机,SVM),并针对不同的GIS平台分别实现该SVM,在设计符号时只面向SVM而不面向任何具体的GIS平台,那么符号就可以在所有实现了SVM的平台间共享。 | ![]() |
---|
符号虚拟机是一个专门进行符号化的基础设施,在之上可以构造各种各样的与符号化相关的应用,整个基于符号虚拟机的符号化模型是一四层结构:
目前已存在多种GIS平台,许多应用都是基于这些平台开发的,如果基于虚拟机的符号不能在这些平台上使用,其应用价值将大打折扣,符号化插件就是用来对已有的GIS平台提供支持,使其能够直接应用在这些平台上。
符号虚拟机共有五大类指令,堆栈操作指令 、二元操作指令(bop)、一元操作指令(uop) 、跳转指令(jmp) 、图形指令(gop)。