基于开源GIS技术的地图制图与发布平台的构建方法与流程

文档序号:33506271发布日期:2023-03-18 01:19阅读:191来源:国知局
基于开源GIS技术的地图制图与发布平台的构建方法与流程
基于开源gis技术的地图制图与发布平台的构建方法
技术领域
1.本发明涉及地理信息系统技术领域,具体为基于开源gis技术的地图制图与发布平台的构建方法。


背景技术:

2.gis是地理信息系统geographic information system,它是在计算机硬、软件系统支持下,对整个或部分地球表层包括大气层空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。gis是一种基于计算机的工具,它可以对空间信息进行分析和处理,简而言之,是对地球上存在的现象和发生的事件进行成图和分析。gis技术把地图的独特视觉化效果和地理分析功能与一般的数据库操作集成在一起。运用该技术可以为工厂的管线分析或数据查询统计提供专业的技术支撑。
3.插件(plugin)是一种遵循一定规范的api(application programming interface,应用程序接口)或按com接口编写出来的模块化程序,应用程序在运行时通过接口规范对插件进行调用,以扩展和完善应用程序的功能,只要按照接口规范,任何开发人员都可以根据自己的需求,封装插件来增加系统的功能。插件技术的优点在于:系统具有统一的框架,结构清晰、易修改,利于软件的普及和学习;插件之间的耦合度较低,利于系统的稳定运行;可根据实际要求的不同,将不同功能的插件注册到系统中,灵活性高。
4.在现有技术中,为了定制化的制做和发布二维地图,需要购买定制化的软件,增加了软件建设成本。


技术实现要素:

5.为克服上述现有技术的不足,本发明提供一种基于开源gis技术的地图制图与发布平台的构建方法,用于解决以上技术问题中的至少一种。
6.本发明是通过以下技术方案予以实现的:
7.基于开源gis技术的地图制图与发布平台的构建方法,包括以下步骤:
8.s1:搭建平台界面,并注册功能插件;
9.s2:制作字体库并安装到平台中,在平台中编辑点符号、线和面的样式并保存至数据库;
10.s3:添加矢量图层至平台中,并设置地图符号样式;
11.s4:封装文件资源web服务、矢量切片web服务、地图发布web服务和地图浏览web服务;
12.s5:调用矢量切片web服务将矢量图层切片;调用文件资源接口和地图发布接口发布地图;
13.s6:调用地图浏览接口浏览地图。
14.在上述技术方案中,首先基于.net framework和开源gis框架mapwingis搭建平台界面,mapwindow是一款基于mapwingis引擎二次开发的桌面端gis软件,可视化采用的是基
于.net framework的syncfusion框架,使用syncfusion及winform客户端框架搭建平台界面,根据需要将开发功能插件,并将功能插件注册至平台中。然后,使用开源的字体软件,如fontforge,设计出地图中需要的点符号样式,导出为.ttf格式的字体库文件,并安装该字体库,同时,在平台中编辑点符号、线和面的样式并保存至数据库中。接着,添加矢量图层(shapefile格式)至平台中,并设置地图符号样式。接下来,基于开源工具及前端、后端框架封装文件资源web服务、矢量切片web服务、地图发布web服务和地图浏览web服务。最后,调用矢量切片web服务,将平台地图中的矢量图层切片,完成切片后,平台生成地图样式相关文件,调用文件资源接口和地图发布接口发布地图,即完成了二维地图的制图和发布过程,用户通过调用地图浏览接口可实现地图的浏览。
15.进一步地,所述平台界面包括位于界面顶部的菜单栏和快速操作栏,位于界面左侧的图层树面板和鹰眼面板,位于界面右侧的工具箱和数据库管理面板,位于界面底部的状态栏及位于界面中间的地图容器。
16.地图容器是基于mapwingis的map control控件,该控件加载的具体步骤如下:若安装了mapwindow软件,通过.net选择工具箱项的com插件来加载mapwingis,如果本地只有mapwingis.ocx文件,通过“开始”菜单中的“运行”输入regsvr32.exe“x:\xxx\mapwindow\mapwingis.ocx”即可。
17.进一步地,步骤s1中所述注册功能插件包括以下步骤:
18.开发平台功能插件;
19.将所述功能插件封装为独立的子插件;
20.将所述子插件注册到平台中。
21.平台各种功能的实现均使用c#语言进行开发,并且应用mvp设计模式,将不同类别的功能插件封装为独立的子插件,当平台需要某个插件时,将其注册到平台中。
22.进一步地,所述功能插件包括项目插件、图层树插件和编辑插件;所述项目插件至少包括发布服务、新建地图、打开工程、保存工程、添加图层、删除图层和属性设置;所述编辑插件至少包括编辑、撤销、重做、选择要素、移动、旋转、属性编辑、删除、复制、剪切和粘贴;图层树插件至少包括缩放至图层、图层属性、属性表、符号选择器和刷新。
23.进一步地,在步骤s2中所述在平台中编辑点符号、线和面的样式并保存至数据库包括以下步骤:
24.编辑点符号的大小、颜色、旋转和可见比例尺范围;
25.编辑线的粗细、颜色、可见比例尺范围和点线组合的形式;
26.编辑面的颜色、边框、透明度和可见比例尺范围;
27.保存编辑结果,将编辑结果对应的数据插入到数据库中。
28.进一步地,所述步骤s3中的设置地图符合样式包括以下两种方式中的至少一种:
29.从符号数据库中引用符号至被选中的图层中;
30.点击类别设置,将图层要素按照字段值的类别给每一类图层要素设置符号样式。
31.在平台菜单栏项目插件中,点击新建地图和添加图层,在弹出的对话框中,选中需要添加的shapefile文件即可将图层添加至地图容器中,并且图层树插件中会显示已添加的图层列表;在平台图层树插件的列表中右键单击一个图层,点击符号选择器,弹出的对话框中,显示了符号数据库中所有该图层符号类型的符号,选择一个符号点击确定即可。此
外,也可以点击对话框中的类别设置,将图层要素按照字段值的不同分类,给每一类设置符号样式。
32.进一步地,在步骤s4中所述文件资源web服务是基于node.js来实现web接口;所述矢量切片web服务是基于tippecanoe实现矢量切片,并基于python实现web接口。
33.文件资源web服务是基于node.js来实现web接口,该接口传入文件数据,返回该文件在服务端的唯一地址;矢量切片web服务中的矢量切片是基于开源工具tippecanoe实现的,并且使用python来实现web接口,该接口传入矢量数据(geojson格式)的地址、坐标系、切片级别等信息,输出切片后瓦片数据的地址。
34.进一步地,在所述步骤s4中地图发布和地图浏览是基于开源地图引擎mapbox实现的,并适用node.js实现web接口。
35.地图发布接口传入切片后数据的地址、json格式的地图样式数据、css sprite文件地址等,输出该地图在服务端的唯一地址。
36.进一步地,所述步骤s5中,在调用矢量切片web服务将矢量图层切片前先对图层进行数据转换。
37.在调用切片服务之前,平台地图中的图层需要先进行数据转换,将shapefile格式转换为geojson格式,使用开源栅格空间数据转换库(geospatial data abstraction library,gdal)的c#接口来实现这一过程。
38.进一步地,在所述步骤s5中,平台在切片服务成功返回结果后,生成两种数据:
39.将点符号图层和线图层的所有符号样式生成css sprite图片,以及对应的json文件spritejson,所述json文件包括了符号名称、符号图片的宽和高、符号图片在css sprite图片中的坐标信息,将css sprite图片及sprite json文件上传至web服务端,返回文件地址;
40.生成mapbox支持的json格式样式文件stylejson,该文件包括地图中心点坐标、地图默认缩放等级、每个图层的切片数据地址和每个图层的样式。
41.与现有技术相比,本发明的有益效果在于:
42.(1)本发明提供的基于开源gis技术的地图制图与发布平台的构建方法,首先基于.net framework和开源gis框架mapwingis搭建平台界面,mapwindow是一款基于mapwingis引擎二次开发的桌面端gis软件,可视化采用的是基于.net framework的syncfusion框架,使用syncfusion及winform客户端框架搭建平台界面,根据需要将开发功能插件,并将功能插件注册至平台中。然后,使用开源的字体软件,如fontforge,设计出地图中需要的点符号样式,导出为.ttf格式的字体库文件,并安装该字体库,同时,在平台中编辑点符号、线和面的样式并保存至数据库中。接着,添加矢量图层(shapefile格式)至平台中,并设置地图符号样式。接下来,基于开源工具及前端、后端框架封装文件资源web服务、矢量切片web服务、地图发布web服务和地图浏览web服务。最后,调用矢量切片web服务,将平台地图中的矢量图层切片,完成切片后,平台生成地图样式相关文件,调用文件资源接口和地图发布接口发布地图,即完成了二维地图的制图和发布过程,用户通过调用地图浏览接口可实现地图的浏览。本发明提供的方法能够满足工厂或城市地理信息管理领域群体的共性化需要,具有一次开发多次利于的效果,有效减少不必要定制化软件的投资。
43.(2)本发明利于开源gis和插件式开发技术,数据读取、显示速度快,地图漫游效率
高,为工厂或城市的规划、建设、管理等业务提供有力支撑。
附图说明
44.图1为根据本发明实施例的方法流程图;
45.图2为根据本发明实施例的整体框架示意图;
46.图3为根据本发明实施例的平台界面示意图;
47.图4为根据本发明实施例的发布服务程序流程图;
48.图5为根据本发明实施例的符号选择器对话框;
49.图6为根据本发明实施例的地图制图效果图;
50.图7为根据本发明实施例的css sprite生成效果图。
具体实施方式
51.以下将结合附图对本发明各实施例的技术方案进行清楚、完整的描述,显然,所描述发实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所得到的所有其它实施例,都属于本发明所保护的范围。
52.如图1和图2所示,本实施例提供一种基于开源gis技术的地图制图与发布平台的构建方法,包括以下步骤:
53.s1:搭建平台界面,并注册功能插件;平台界面搭建具体步骤为:基于mapwindow开发平台的界面。mapwindow是一款基于mapwingis引擎二次开发的桌面端gis软件,可视化采用的是基于.net framework的syncfusion框架,所述平台使用syncfusion及winform客户端框架搭建平台界面。
54.所述平台界面包括位于界面顶部的菜单栏和快速操作栏,位于界面左侧的图层树面板和鹰眼面板,位于界面右侧的工具箱和数据库管理面板,位于界面底部的状态栏及位于界面中间的地图容器。地图容器是基于mapwingis的map control控件,该控件加载的具体步骤如下:若安装了mapwindow软件,通过.net选择工具箱项的com插件来加载mapwingis,如果本地只有mapwingis.ocx文件,通过“开始”菜单中的“运行”输入regsvr32.exe“x:\xxx\mapwindow\mapwingis.ocx”即可。
55.本实施例中的平台的整体界面如图3所示,地图中显示武汉市青山区的边界和道路。平台的基础功能插件为项目插件、编辑插件和图层树插件。项目插件包括了地图管理等功能:发布服务、新建地图、打开工程、保存工程、添加图层、删除图层、属性设置等;编辑插件包括了地图要素的编辑功能:编辑、撤销、重做、选择要素、移动、旋转、属性编辑、删除、复制、剪切、粘贴等;图层树插件包括了地图的图层控制功能:缩放至图层、图层属性、属性表、符号选择器、刷新等。
56.注册功能插件包括以下步骤:
57.开发平台功能插件;
58.将所述功能插件封装为独立的子插件;
59.将所述子插件注册到平台中。
60.平台各种功能的实现均使用c#语言进行开发,并且应用mvp设计模式,将不同类别
abstraction library,gdal)的c#接口,将地图中的图层进行数据转换,shapefile格式转换为geojson格式;
72.(2)将geojson数据通过文件资源服务上传至服务端,上传成功后,再将切片参数(坐标系、切片级别、切片名称)和geojson数据地址发送至切片服务,等待服务端完成切片并返回瓦片数据地址;
73.(3)平台根据地图中的图层生成两种数据:
74.①
将point图层和line图层的所有符号样式生成css sprite图片,以及对应的json文件spritejson,该文件包括了符号名称、符号图片的宽和高、符号图片在css sprite图片中的坐标等信息,如图7所示,是本实例中青山区道路图层,各种要素类别的样式符号拼接而成的,还需要生成css sprite对应的json文件spritejson,该文件包括了符号名称、符号图片的宽和高、符号图片在css sprite图片中的坐标等信息,具体格式如下示例所示:
[0075][0076][0077]
将css sprite图片及sprite json文件上传至web服务端,返回文件地址;
[0078]

生成mapbox支持的json格式样式字符串stylejson,该文件包括地图中心点坐标、地图默认缩放等级、每个图层的瓦片数据地址、每个图层的样式,其中point和line图层的样式数据根据css sprite中的对应符号名称生成,polygon图层的样式数据根据平台中图层属性的颜色、透明度等信息生成;
[0079]
(4)将(3)中生成的css sprite图片和spritejson上传至服务端,将接口返回的数据地址和(3)中生成的stylejson字符串传入地图发布服务,等待发布完成,获取发布后的地图地址。
[0080]
s6:调用地图浏览接口浏览地图。将s5得到的发布后地图地址,传入地图浏览服务,服务端根据该地址可以获取地图瓦片数据和样式数据,并使用mapbox地图引擎加载数据、渲染地图。
[0081]
本实施例提供的方法,首先基于.net framework和开源gis框架mapwingis搭建平台界面,mapwindow是一款基于mapwingis引擎二次开发的桌面端gis软件,可视化采用的是基于.net framework的syncfusion框架,使用syncfusion及winform客户端框架搭建平台界面,根据需要将开发功能插件,并将功能插件注册至平台中。然后,使用开源的字体软件,如fontforge,设计出地图中需要的点符号样式,导出为.ttf格式的字体库文件,并安装该字体库,同时,在平台中编辑点符号、线和面的样式并保存至数据库中。接着,添加矢量图层
(shapefile格式)至平台中,并设置地图符号样式。接下来,基于开源工具及前端、后端框架封装文件资源web服务、矢量切片web服务、地图发布web服务和地图浏览web服务。最后,调用矢量切片web服务,将平台地图中的矢量图层切片,完成切片后,平台生成地图样式相关文件,调用文件资源接口和地图发布接口发布地图,即完成了二维地图的制图和发布过程,用户通过调用地图浏览接口可实现地图的浏览。
[0082]
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1