CN1838073A - 基于虚拟机的地理信息***通用符号***及其构建方法 - Google Patents
基于虚拟机的地理信息***通用符号***及其构建方法 Download PDFInfo
- Publication number
- CN1838073A CN1838073A CN 200610018873 CN200610018873A CN1838073A CN 1838073 A CN1838073 A CN 1838073A CN 200610018873 CN200610018873 CN 200610018873 CN 200610018873 A CN200610018873 A CN 200610018873A CN 1838073 A CN1838073 A CN 1838073A
- Authority
- CN
- China
- Prior art keywords
- symbol
- virtual machine
- gis
- platform
- symbolic library
- 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.)
- Granted
Links
Landscapes
- Instructional Devices (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供的基于虚拟机的地理信息***通用符号***,其包括符号语言、符号编译器、符号集成开发环境和符号虚拟机,GIS是地理信息***。本发明还提供了基于虚拟机来构建地理信息***通用符号的方法,即:利用符号虚拟机来屏蔽具体GIS平台的差异,为符号库的实现提供统一的接口,实现符号库在不同GIS平台上通用的方法。本发明的优点是:通过符号虚拟机屏蔽了具体GIS平台的差异性,为符号库的实现者提供了统一的接口,从而实现了同一个符号库在不同GIS平台上的通用。
Description
技术领域
本发明涉及信息领域,特别是一种基于虚拟机的地理信息***通用符号***及其构建方法。
背景技术
目前,市场上的各种地理信息***(GIS)软件平台都实现了各自的地图符号,但是这些地图符号只是针对特定的平台设计的,不具有通用性,往往是针对一种平台设计的符号不能在另一种平台上使用。而设计一套符号又是一个很费时费力的工作,因而急需一种通用的符号***。
发明内容
本发明所要解决的技术问题是:提供一种基于虚拟机的地理信息***通用符号***及其构建方法,其适用于与GIS和电子地图相关的计算机软件***。
本发明解决其技术问题采用以下的技术方案:
本发明提供的基于虚拟机的地理信息***通用符号***,其包括符号语言、符号编译器、符号集成开发环境和符号虚拟机,GIS是地理信息。
本发明提供一种基于虚拟机来构建地理信息***通用符号的方法,即:利用符号虚拟机来屏蔽具体GIS平台的差异,为符号库的实现提供统一的接口,实现符号库在不同GIS平台上通用的方法。
本发明的优点是:通过符号虚拟机屏蔽了具体GIS平台的差异性,为符号库的实现者提供了统一的接口,从而实现了同一个符号库在不同GIS平台上的通用。
具体实施方式
本发明提供的基于虚拟机构建GIS通用符号***,其包括符号语言、符号编译器、符号集成开发环境和符号虚拟机。其中:
符号语言:采用一个专门用于编写符号的编程语言vmSymbol。
符号编译器:把由符号语言编写的源程序编译成能在符号虚拟机上运行的目标代码,该目标代码就是能在所有实现了符号虚拟机的GIS平台上通用的符号库。
符号集成开发环境:是指vmSymbol的集成编程环境,包括提供其源程序的编辑器、编译器和符号预览工具,以及语法分色、错误定位和图形化的符号预览工具,用户可以直接在该集成环境中进行符号库编辑、编译、除错以及符号的预览,并生成最终的符号库。
符号虚拟机:当GIS平台软件需要对地图进行符号化时,它就将符号化的任务交给针对该GIS平台的符号虚拟机,而符号虚拟机则通过执行符号库里的指令进行地图数据的符号化,这样就通过符号虚拟机屏蔽了具体GIS平台的差异性,为符号库的实现者提供了统一的接口,从而实现了同一个符号库在不同GIS平台上的通用,例如:可以在ArcGIS(包括MapObject,ArcObject,ArcEngine)、GeoStar和CMICS 2.0三个GIS平台实现了符号虚拟机。ArcGIS是ESRI(美国环境***研究所Environmental Systems Research Institute Inc)开发的GIS软件开发平台,GeoStar是武汉武大吉奥信息工程技术有限公司开发的GIS软件平台,CMICS是武汉大学和武汉武大吉奥信息工程技术有限公司共同开发的城市管理信息采集***平台。
本发明还提供了基于虚拟机来构建地理信息***通用符号的方法,即:利用符号虚拟机来屏蔽具体GIS平台的差异,为符号库的实现提供统一的接口,实现符号库在不同GIS平台上通用的方法,该方法采用下列步骤,
(1)在符号集成开发环境中进行符号库源程序的编写、编译、调试及预览,并生成符号库。
(2)GIS软件在初始化过程中加载针对该GIS平台的符号化虚拟机。
(3)符号虚拟机初始化自己并根据需要装载所需的符号库。
(4)当GIS软件需要对数据进行符号化时,它将数据转交符号虚拟机,由虚拟机去执行符号化的任务。
(5)符号虚拟机通过执行符号库中的符号指令对数据进行符号化。
下面结合武汉城市网格化管理***中通用符号的实施对本发明作进一步说明。
武汉城市网格化管理***中有两个地方用到电子地图:一个是在PC机上运行的信息管理***,它用MapObject进行地图显示;另一个是运行在Smartphone(智能手机)上的信息采集***,它用我们自主开发的嵌入GIS***(CMICS 2.0)进行地图显示。它们都用同一个基于虚拟机的符号***做出的符号库对地图数据进行符号化,并达到了一致的效果;所不同的是,一个用的是针对MapObject的符号虚拟机,一个用的是针对CMICS 2.0的符号虚拟机。具体实施时,先在符号集成开发环境中进行符号库源程序的编写,并编译生成所需要的符号库;然后在不同的平台调用不同的虚拟机加载符号库进行符号化。
对于虚拟机,不同的GIS平台的虚拟机是不同的,但所有虚拟机的核心是相同的,其核心就是从符号库中取出相应的指令并逐条执行,所不同的是各个具体GIS平台对虚拟机的调用方式和绘图指令的实现方式可能不同。因此,我们可以先实现一个公共的核心虚拟机,它的功能就是加载符号库并能执行其中的指令,核心虚拟机提供以下5个函数接口,以C语言的形式表示如下:
①int getSymbolCount(int type)
//用于得到符号库中符号的个数,其中type可以等于0、1、2分别表示得到点、线、面符号的个数。
②bool getSymbolName(int type,int index,char name[],int length)
//用于得到符号的名称,type为符号的类型,index为符号库中的符号的索引,name存放返回的符号的名字,length为name的长度。
③bool drawMarkerSymbol(int index,int x,int y,int size,COLOR lineColor,COLOR fillColor,int lineWidth,float angle)
//用于绘点符号,index为点符号的索引,x,y为点符号的位置,size为点符号的大小,lineColor和fillColor分别为符点的线和填充色,lineWidth为线的宽度,angle为点符号旋转的角度。
④bool drawLineSymbol(int index,POINT points[],int count,COLOR color,intlineWidth)
//用于绘线符号,index为线符号的索引,points为线符号的坐标,count为坐标的个数,color为线的颜色,lineWidth为线宽。
⑤bool drawFillSymbol(int index,POINT points[],int partCounts[],int numParts,COLOR lineColor,COLOR fillColor,int lineWidth)
//用于绘面符号,index为面符号的索引,points为面符叼的坐标,partCounts和numParts进一步对坐标进行解释,用来说明该面符号由几部分组成,每部分有多少个点,lineColor和fillColor分别为线和填充色,lineWidth为线宽。
所有针对具体GIS平台的虚拟的机都通过调用核心虚拟机的这5个函数接口来实现对地图数据的符号化;另外核心虚拟机在执行绘图指令(如moveto,lineto,polygon等)时则作为回调函数留给针对具体GIS平台的虚拟机去实现。因此在实现针对具体GIS平台的虚拟机时,要解决两个问题,一是如何调用核心虚拟机,二是怎样实现绘图指令的回调函数。
再结合武汉城市网格化管理***中的两个虚拟机的实施例作进一步说明:
实施例1:
MapObject符号虚拟机的实施:在实现MapObject的符号虚拟机时,由于MapObject允许用户通过COM来自定义符号,我们只要实现一个符合MapObject符号接口的COM组件,在该COM组件里面调用核心虚拟机,就解决如何调用核心虚拟机的问题。
对于实现绘图指令的回调函数,由于MapObject是在Windows的HDC上进行绘图,我们只要调用Windows的GDI函数就可以实现这些回调函数。
实施例2:
CMICS 2.0符号虚拟机的实施:由于CMICS 2.0是自主开发的,其符号化工作就是直接调用核心虚拟机实现的,因而对如何调用核心虚拟机就非常直观了;对于绘图指令也是调用Windows的GDI实现的。
上述实施例不对本发明的限制,其仅供参考,用于对本发明的更进一步的理解。
Claims (3)
1.一种地理信息***通用符号***,其特征是基于虚拟机构建GIS通用符号***,包括符号语言、符号编译器、符号集成开发环境和符号虚拟机,GIS是地理信息***,
符号语言:采用一个专门用于编写符号的编程语言vmSymbol,
符号编译器:把由符号语言编写的源程序编译成能在符号虚拟机上运行的目标代码,该目标代码就是能在所有实现了符号虚拟机的GIS平台上通用的符号库,
符号集成开发环境:是指vmSymbol的集成编程环境,包括提供其源程序的编辑器、编译器和符号预览工具,以及语法分色、错误定位和图形化的符号预览工具,用户可以直接在该集成环境中进行符号库编辑、编译、除错以及符号的预览,并生成最终的符号库,
符号虚拟机:当GIS平台软件需要对地图进行符号化时,它就将符号化的任务交给针对该GIS平台的符号虚拟机,而符号虚拟机则通过执行符号库里的指令进行地图数据的符号化,这样就通过符号虚拟机屏蔽了具体GIS平台的差异性,为符号库的实现者提供了统一的接口,从而实现了同一个符号库在不同GIS平台上的通用。
2.根据权利要求1所述的地理信息***通用符号***,其特征是在ArcGIS、GeoStar和CMICS 2.0三个GIS平台实现符号虚拟机;其中,ArcGIS是美国环境***研究所开发的GIS软件开发平台,GeoStar是武汉武大吉奥信息工程技术有限公司开发的GIS软件平台,CMICS是武汉大学和武汉武大吉奥信息工程技术有限公司共同开发的城市管理信息采集***平台。
3.一种地理信息***通用符号***的构建方法,其特征是一种基于虚拟机来构建地理信息***通用符号的方法,即:利用符号虚拟机来屏蔽具体GIS平台的差异,为符号库的实现提供统一的接口,实现符号库在不同GIS平台上通用的方法,该方法采用下列步骤,
(1)在符号集成开发环境中进行符号库源程序的编写、编译、调试及预览,并生成符号库,
(2)GIS软件在初始化过程中加载针对该GIS平台的符号化虚拟机,
(3)符号虚拟机初始化自己并根据需要装载所需的符号库,
(4)当GIS软件需要对数据进行符号化时,它将数据转交符号虚拟机,由虚拟机去执行符号化的任务,
(5)符号虚拟机通过执行符号库中的符号指令对数据进行符号化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100188730A CN100386723C (zh) | 2006-04-25 | 2006-04-25 | 基于虚拟机的地理信息***通用符号***及其构建方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2006100188730A CN100386723C (zh) | 2006-04-25 | 2006-04-25 | 基于虚拟机的地理信息***通用符号***及其构建方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1838073A true CN1838073A (zh) | 2006-09-27 |
CN100386723C CN100386723C (zh) | 2008-05-07 |
Family
ID=37015480
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2006100188730A Expired - Fee Related CN100386723C (zh) | 2006-04-25 | 2006-04-25 | 基于虚拟机的地理信息***通用符号***及其构建方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100386723C (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402529A (zh) * | 2010-09-13 | 2012-04-04 | 方正国际软件有限公司 | 地图标绘控制方法及装置 |
CN106201444A (zh) * | 2015-04-29 | 2016-12-07 | 南京南瑞继保电气有限公司 | 一种通用可扩展编程符号建模方法 |
CN106384560A (zh) * | 2016-09-12 | 2017-02-08 | 湖南新航动力信息科技有限公司 | 基于地图的图标处理方法及*** |
CN106568377A (zh) * | 2016-11-07 | 2017-04-19 | 武汉大学 | 基于ArcEngine的构造大地测量成图方法及*** |
CN109931933A (zh) * | 2017-12-15 | 2019-06-25 | 中国航空工业集团公司成都飞机设计研究所 | 基于gis平台的任务规划和导航绘制方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6104410A (en) * | 1997-01-17 | 2000-08-15 | Shui-Ying Wong | Method and apparatus for displaying stacked symbols to create a multi-dimensional view |
JP2003099792A (ja) * | 2001-09-20 | 2003-04-04 | Hitachi Information Systems Ltd | 地理情報システムの図示記号作成方法及びその図示記号作成プログラム並びに地理情報システム |
CN1237468C (zh) * | 2002-10-10 | 2006-01-18 | 中国地质调查局发展研究中心 | 区域地质调查中的数字填图方法 |
-
2006
- 2006-04-25 CN CNB2006100188730A patent/CN100386723C/zh not_active Expired - Fee Related
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402529A (zh) * | 2010-09-13 | 2012-04-04 | 方正国际软件有限公司 | 地图标绘控制方法及装置 |
CN106201444A (zh) * | 2015-04-29 | 2016-12-07 | 南京南瑞继保电气有限公司 | 一种通用可扩展编程符号建模方法 |
CN106384560A (zh) * | 2016-09-12 | 2017-02-08 | 湖南新航动力信息科技有限公司 | 基于地图的图标处理方法及*** |
CN106568377A (zh) * | 2016-11-07 | 2017-04-19 | 武汉大学 | 基于ArcEngine的构造大地测量成图方法及*** |
CN106568377B (zh) * | 2016-11-07 | 2019-07-23 | 武汉大学 | 基于ArcEngine的构造大地测量成图方法及*** |
CN109931933A (zh) * | 2017-12-15 | 2019-06-25 | 中国航空工业集团公司成都飞机设计研究所 | 基于gis平台的任务规划和导航绘制方法 |
CN109931933B (zh) * | 2017-12-15 | 2022-10-28 | 中航(成都)无人机***股份有限公司 | 基于gis平台的任务规划和导航绘制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN100386723C (zh) | 2008-05-07 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9495722B2 (en) | Developer controlled layout | |
CN1838073A (zh) | 基于虚拟机的地理信息***通用符号***及其构建方法 | |
Panas et al. | Communicating software architecture using a unified single-view visualization | |
US10120655B2 (en) | Seamless high performance interoperability between different type graphs that share a garbage collector | |
US9348567B2 (en) | Profile guided optimization in the presence of stale profile data | |
CN105701854A (zh) | 一种3d渲染方法、装置及引擎 | |
US20100050158A1 (en) | System and process for debugging object-oriented programming code leveraging preprocessors | |
CN109634611B (zh) | 基于OpenGL的移动端三维模型ply文件解析与展示方法 | |
US20100269088A1 (en) | Abstracting Business Logic into Centralized Database Controls | |
Gralka et al. | Visual exploration of memory traces and call stacks | |
CN102710833A (zh) | 一种手机测试用例及其自动生成方法 | |
CN1749957A (zh) | 一种面向图形绘制引擎的io中间件装置 | |
Hähnle et al. | HATS abstract behavioral specification: The architectural view | |
CN1877522A (zh) | 嵌入式***基于功能构件化的实现方法 | |
CN101055521A (zh) | 映射规则的可视化生成方法及*** | |
CN108319227A (zh) | 图形套料的数控程序生成方法、服务器及存储介质 | |
Hill et al. | Scalable visualisations with ownership trees | |
CN1848093A (zh) | 基本输入输出***中高级配置和电源接口模块的调试方法 | |
CN108845791B (zh) | 应用程序代码开发处理方法及装置、可读存储介质、终端 | |
Cleeland et al. | External polymorphism | |
CN106598701A (zh) | 基于虚拟机的地理信息***标准符号***及其创建方法 | |
Zhang et al. | Making halide efficient for multicore systems | |
Watanabe et al. | Visualizing an execution trace as a compact sequence diagram using dominance algorithms | |
CN113435144B (zh) | 一种从Siwave到CST的远场数据交互方法 | |
Mitchell et al. | Building memory-efficient Java applications: Practices and challenges |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20080507 Termination date: 20160425 |