Hello GEOTools
近来接触到地理开发中间件,开源框架的GEOTools,感觉蛮好玩的,和大家分享下。
一个地道的GISer对这个开源框架的入门是很简单的,因为整个框架的架构其实和ESRI的AE架构差不多,下面是一个GEOTools版的Hello
World,刚刚入门所以源码中有误的地方请多多指教一起学习。
package New;
import java.io.File;
import org.geotools.data.CachingFeatureSource;
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.styling.Style;
import org.geotools.swing.JMapFrame;
import
org.geotools.swing.data.JFileDataStoreChooser;
public class New {
public static void
main(String[] args) throws Exception
{
// 打开一个shp文件
File fileDir=new
File(“F:\\arcengine\\data”);
File file
=JFileDataStoreChooser.showOpenFile(“shp”, fileDir, null);
//
File file =
JFileDataStoreChooser.showOpenFile(“shp”, null);
//
if (file == null) {
//
return;
//
}
//存储在store中
FileDataStore store =
FileDataStoreFinder.getDataStore(file);
SimpleFeatureSource featureSource =
store.getFeatureSource();
//存储在内存中在每次移动图层就不需要再重新读取SHP
// CachingFeatureSource cache = new
CachingFeatureSource(featureSource);
// Create a map content and add our shapefile to
it
MapContent map = new MapContent();
map.setTitle(“Using cached features”);
Style style =
SLD.createSimpleStyle(featureSource.getSchema());
Layer layer = new FeatureLayer(featureSource,
style);
//
Layer layer = new
FeatureLayer(cache, style);
map.addLayer(layer);
// Now display the map
JMapFrame.showMap(map);
}
}
在运行过程中会报一下错误:
有提示过时的引用:
import
org.geotools.data.CachingFeatureSource;
以上代码参照其官网,整体能够实现SHP的显示。
转载自:https://blog.csdn.net/SCNU_Arain/article/details/84879707