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 shapefiles
File 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 it
MapContent 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 map
JMapFrame.showMap(map);
}
}
运行的效果就是上边第一个截图,使用的数据是中国边界的shp文件。GeoTools中封装的Swing组件还是蛮不错的,开箱即用就可以满足简单的桌面GIS的需求。
如果你对于开源GIS软件有兴趣或有疑问,欢迎加入QQ群“开源GIS技术交流群”讨论学习,备注CSDN。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。