通过FactoryFinder创建实例
1. 通过FactoryFinder在文件中找到Factory的链接(.getFactory)
2. 通过Factory创建实例对象(Feature,Filters……)
3. 对实例对象进行操作
打开shapefile文件(Quickstart)
public class Quickstart {
/**
* GeoTools Quickstart demo application.Prompts the user for a shapefile and displays its
* contents on the screen in a map frame
*/
public static void main(String[] args) throws Exception {
// display adata 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 amap content and add our shapefile to it
MapContent map = new MapContent();
map.setTitle("Quickstart");
Style style = SLD.createSimpleStyle(featureSource.getSchema());
Layer layer = new FeatureLayer(featureSource, style);
map.addLayer(layer);
// Now displaythe map
JMapFrame.showMap(map);
}
}
1. 通过JFileDataStoreChooseer打开文件(特定后缀名)--出现打开文件对话框
——gt-swing.jar
2. 通过StoreFinder获取DataStore
3. 在DataStore获取SimpleFeatureSource
4. 新建FeatureLayer,参数需要featureSource/collection,style
5. 新建MapContent地图容器
6. 加载图层
7. 显示地图
将CVS文件转为shapefile文件并导出
思路:(打开cvs文件,)定义新shp文件类型,读取cvs文件数据生成要素(个体),再将要素存到数据集;创建新shp文件,将其指定为工作工厂,将数据集中数据写入。
用到的jar包(gt-shapefile,gt-epsg-hsql,gt-swing)
不能直接把所以jar包导入,会报错(org.opengis.referencing.FactoryExceptoin:Fail to connect to the EPSGdatabase)。
另外的可能解决办法:用Maven新建项目(jar包将自己检查和精简),需要在pom.xml中设置需要依赖的jar包名称等。
1. 通过JFileDataStoreChooseer打开文件(特定后缀名)--出现打开文件对话框
——gt-swing.jar
"the_geom:Point:srid=4326,"+ // <- the geometry attribute: Point type,SRID=4326表示坐标系为WGS84。ogc标准中空间参照系统的SRid(Spatial Reference System identifier)与EPSG的空间参照系统id相一致。4326为WGS84的WKID。
2. 通过DataUtilities类创建shp文件的类型以及所包含字段
——gt-main.jar
DataUtilities.createType(typeName, specification )
featureType一旦被创建便无法修改,只能通过复制获得一个subT