基于udig(开源GIS软件)二次开发(3)
晚上回来的迟了,今天主要说明一下udig里大部分插件的含义。当然有一些插件对于我们二次开发可能几乎用不到这里可能没有说明到。udig这个产品在插件命名上还是比较规范的,通过相应的插件名称我们基本也可以看出来这个插件的作用。
从插件名称的排序开始说起:
以下介绍均为本人自己理解,如果哪里不对或者有更好的见解请及时联系我纠正以下。
1.
net.refractions.udig UDIG的产品运行插件。该插件内部其实并没有代码,里面包含了product等文件。可以看做是启动插件。
2.
net.refractions.udig.browser ,UDIG中浏览器插件,内部封装了udig中对浏览器的支持。并包含了udig中支持协议和License信息等。
3.net.refractions.udig.catalog ,这个系列的插件包含了udig对当前数据源的支持和呈现,具体包含了有:
net.refractions.udig.catalog.arcgrid,栅格化地图支持
net.refractions.udig.catalog.db2,DB2数据库支持
net.refractions.udig.catalog.geotiff ,tiff格式图片支持
net.refractions.udig.catalog.geotiff , shp文件支持
net.refractions.udig.catalog.wms , WMS服务支持
…….后面还有很多我就不一一介绍了,大家看一下catalog这个下面的插件,基本最后一个单词就代表支持类型,其中net.refractions.udig.catalog.ui插件是该体系插件集合中的UI呈现部分,包含几个视图view(catalog、serach)和基础GIS服务图层导入导出功能。其中我们需要重点关注的有 geotools、wms、postgis、wmt这几个插件,因为在后面二次开发的话我们会经常用到。
我注意观察了一下wmt插件还是原来的1.2版本(1.2版本的wmt服务目前还支持OSM-openstreetmap),目前看来想支持google、baidu等地图还需要我们自己重写这个插件了。笔者已经有过这方面经验,以后的文章中我会提到如果扩展udig让其支持online/offline的其他地图服务瓦片和图层。
4.
net.refractions.udig.core ,UDIG的一个核心插件、内部提供了注册UDIG自定义扩展点服务的功能。并且内部封装了多个适配器、以及feature过滤接口和适配器,可以为后续二次开发提供图层过滤显示、自定义扩展点加载等。
5.
net.refractions.udig.feature.editor.. UDIG中对feature进行编辑支持的插件。内部添加视图有:feature editor(提供当前焦点图层元素编辑)、feature(展示当前图层所有feature)。如果我们要将自己发布的图层进行一些小的编辑或者操作可以用到里面某些方法。
6.
net.refractions.udig.help。 UDIG帮助体系主插件。
7.
net.refractions.udig.info。 UDIG中信息插件,内部包含的功能有地图中查看某一个经纬度点下的features信息、测距。并提供视图进行查看。实际开发中经常会利用这两个功能进行一些扩展开发,例如我查找某一个点下feature并进行编辑、点击某一个feature进行一些关联性事件等。该插件主要提供一些当前地图上图层信息查看服务。
8、
net.refractions.udig.jai.macosx 。该插件在platform filter中添加的是 (osgi.os=macosx) 所以我也不知道是干嘛的。
9.
net.refractions.udig.legend 。该插件提供一些说明和透视图定义。UDIG中的两个透视图 map和style就在该插件中定义。
10.
net.refractions.udig.libs 。该系列包含有三个插件,主要我用的还是这个。UDIG中所有插件需要的第三方JAR包都在此插件中进行集中绑定。包含我们的数据库访问JDBC包、geotoools开发包、chart包等等。
11.
net.refractions.udig.printing 。该功能性插件包含三个。主要是支持udig中对当前地图或者图层的打印支持。其中三个插件里:model是打印模型的支持。Model.edit是对当前模型进行可编辑支持、ui提供UI界面支持。
12.
net.refractions.udig.project 。 project这个下面有4个插件。这几个插件是UDIG中很重要的插件,如果要基于udig进行二次,这几个插件是肯定要用到的。UDIG中创建项目、创建地图、创建图层都要用到。包括UDIG中地图 mapeditor也是在该插件中进行实现。
13.
net.refractions.udig.render 该插件集合下面有5个插件。我们重点关注后面带basic的三个插件。这三个插件提供了wms服务(加载web map server)、wmt(web map tiles)、gridcoverage。
其中我们如果后续要扩展加载geoserver中wms服务器的话和让udig支持google map、baidu map的话就需要扩展wms.basic wmt.basic这两个插件。
14.
net.refractions.udig.style 。UDIG中对图层的样式编辑就在这里了。地图好看不好看,哪些属性该显示、哪些元素根本就不应该让显示出来就看我们style配置的如何了。其中sld主要针对于shp图层。Wms主要针对于wms 网络服务图层的配置。后面我会主要介绍一些sld如何配置和怎么样通过geotools的代码动态修改当前地图的样式和显示效果。
15.
net.refractions.udig.tool。 UDIG中工具类的插件集合。其中主要有三个。Default主要包含基础性的一些工具,譬如地图放大、缩放、缩放一定比例等。Select包含了查看性的一些工具。譬如查看当前bbox下选择的所有feature、显示当前的feature等。Edit主要包含对当前图层中feature或者图层的编辑工具,包含栅格图层中某一个feature、修改某个feature值等。
16.
net.refractions.udig.tutorials 该系列的插件我就不讲了。基本如果基于UDIG二次开发的话这里面的插件用的较少(反正我是还没用到)。
总体来说基于UDIG二次开发的话,首先要了解RCP的一个体系结构另外对GIS有一定了解。当然我会在后面的介绍中对RCP开发和GIS常用开发做一些总结和指导。
今天到这里为止,下一篇文章我会开始创建一个小项目,该项目基于UDIG,有菜单有视图,可以通过菜单将csv或者文本文件导入程序,程序讲数据做成shp文件在通过resource加载到udig的地图中。
上一篇: 5G时代下的新媒体有哪些(直播+短视频才是新趋势)
下一篇: 机器人的古往今来