GeoTools是大名鼎鼎的JAVA开源开发包,支持开发基于Swing的GUI应用程序。GeoTools对于矢量数据和栅格数据都有完善的支持,是开源GIS方案中常见的选择之一。例如流行的GIS服务器GeoServer就是基于GeoTools开发的,另一个桌面GIS软件uDig也是使用GeoTools开发的。

前些天看了些文档,今天得空先把官网上的简单demo跑起来。代码如下:

import org.geotools.data.FileDataStore;
import org.geotools.data.FileDataStoreFinder;
import org.geotools.data.simple.SimpleFeatureSource;
import org.geotools.map.FeatureLayer;
import org.geotools.map.Layer;
import org.geotools.map.MapContent;
import org.geotools.styling.SLD;
import org.geotools.styling.Style;
import org.geotools.swing.JMapFrame;
import org.geotools.swing.data.JFileDataStoreChooser;import java.io.File;public class MapGuiApp {public static void main(String [] args) {try {guiMain(args);}catch (Exception e) {e.printStackTrace();}}/*** GeoTools Quickstart demo application. Prompts the user for a shapefile and displays its* contents on the screen in a map frame*/public static void guiMain(String[] args) throws Exception {// display a data store file chooser dialog for shapefilesFile file = JFileDataStoreChooser.showOpenFile("shp", null);if (file == null) {return;}FileDataStore store = FileDataStoreFinder.getDataStore(file);SimpleFeatureSource featureSource = store.getFeatureSource();// Create a map content and add our shapefile to itMapContent map = new MapContent();map.setTitle("China Boundary");Style style = SLD.createSimpleStyle(featureSource.getSchema());Layer layer = new FeatureLayer(featureSource, style);map.addLayer(layer);// Now display the mapJMapFrame.showMap(map);}
}

运行的效果就是上边第一个截图,使用的数据是中国边界的shp文件。GeoTools中封装的Swing组件还是蛮不错的,开箱即用就可以满足简单的桌面GIS的需求。

如果你对于开源GIS软件有兴趣或有疑问,欢迎加入QQ群“开源GIS技术交流群”讨论学习,备注CSDN。

GeoTools开发GIS图形界面应用程序相关推荐

  1. Linux gtk开发教程,使用GTK+和Glade快速开发Linux图形界面

    使用GTK+和Glade快速开发Linux图形界面 Glade , GTK , Linux , draft , 图形 * 使用 GTK+ 和 Glade 快速开发 Linux 图形界面 ** GTK+ ...

  2. 使用GTK+和Glade快速开发Linux图形界面

    * 使用 GTK+ 和 Glade 快速开发 Linux 图形界面 ** GTK+ 简介 *** 基本概念 GTK+ 是一种用于创建图形界面的库. 嗯, gnome 用的就是它, 不过并不是说只 有在 ...

  3. java图形界面应用程序(转)

    图形界面应用程序 java中各种图形组件如按钮对话框都是Component类的子类,放在容器(Container)中.java中的容器有两类:窗口Window和面板Panel.窗口是可以独立存在的容器 ...

  4. Xming + PuTTY 在Windows下远程Linux主机使用图形界面的程序

    Xming + PuTTY 在Windows下远程Linux主机使用图形界面的程序 一.原理     Linux/Unix的X Window具有网络透明性.X Window系统里有一个统一的Serve ...

  5. 怎么开发Linux图形界面程序,Linux下的图形界面编程

    Linux下的图形界面编程 一.Qt和GTK+ 虽然Linux下的大多数开发是基于字符界面的,但在Linux环境下也可以开发出美观大方的图形界面.经过多年的发展,目前已经存在多种用于在Linux下开发 ...

  6. 这绝对是个高手,一个用 C 开发的图形界面开发库

    大家好,我是章鱼猫. 今天给大家推荐一个开源项目,这个开源项目绝对是一个高手开发并开源的项目. 这个开源项目是一个用 C 语言编写的桌面端图形界面开发库:LCUI . 这个图形界面开发库 LCUI 可 ...

  7. 一个用 C 开发的图形界面开发库

    [公众号回复 "1024",免费领取程序员赚钱实操经验] 大家好,我是章鱼猫. 今天给大家推荐一个开源项目,这个开源项目绝对是一个高手开发并开源的项目. 这个开源项目是一个用 C ...

  8. python桌面应用开发kivy_Kivy 图形界面开发初体验

    本文是觅道文档连载教程<使用Kivy构建现代桌面GUI应用> 的第一个实例,如需细致的介绍,可在文末点击"阅读原文"进行阅读 Kivy 是一个开源的 Python 第三 ...

  9. java开发之图形界面GUI初步-Swing几种常用组件及其应用

    package test; import java.awt.*; import java.awt.event.KeyEvent; import javax.swing.*; /* * 作者:钟志钢 * ...

最新文章

  1. 昨日,全球股市进入ICU!89岁股神巴菲特惊叹活久见!苹果微软万亿美金市值摇摇欲坠...
  2. Zookeeper的来源
  3. HDU4273(求三维凸包重心到表面的最短距离)
  4. CF809D-Hitchhiking in the Baltic States【FhqTreap】
  5. HALCON 21.11:深度学习笔记---术语表(7)
  6. python安装步骤-从0到1,Python安装步骤详解(附基础知识简介)!
  7. TCP协议与IP协议
  8. 两种MBR分区表恢复方法
  9. win10释放C盘空间(清理C盘)
  10. 重要消息|2020年9月1日起, SSL证书最长有效期变更为1年
  11. 云呐机房动环FSU监控系统,fsu监控设备怎么调
  12. 打印选课学生名单(25)
  13. 前锋java教学大纲,【人教版初中英语教学大纲模板资讯】人教版初中英语教学大纲模板足球知识与常识 - 足球百科 - 599比分...
  14. opencv 单个圆形孔和针检测
  15. python爬虫——正则获取手机号
  16. 开心一刻 程序--内行话
  17. Win10下Keil5的C51和ARM共存的开发环境配置
  18. 机房服务器维保 招标文件,机房维护服务项目招标文件.docx
  19. 输入两个数字,求两数字之间所有的质数,输出这些质数,并求这些质数和,最大值最小值
  20. CMOS模拟集成电路设计视频课程--即将上线

热门文章

  1. Java开发(七)for循环语句
  2. @Validated和@Valid使用
  3. 8266+DS3231时钟之显示TM1638的使用【四】下
  4. KAZE与SIFT算法比较
  5. git 撤回 (git版本回退处理)
  6. 一些常用的判断预测、拟合、回归的精度评价函数和相关性评价函数
  7. 网投简历应该注意些什么
  8. 11 Laws of The System Thinking in Software Develo(软件开发中的11个系统思维定律)
  9. 加密流量也能识别与管控,绿网借至强AI加速能力打造高效智能DPI方案
  10. Bit、Byte、KB