geotools处理shapefiles
2014-01-20 20:14
148 查看
package org.geotools; import java.io.File; import org.geotools.data.FileDataStore; import org.geotools.data.FileDataStoreFinder; import org.geotools.data.simple.SimpleFeatureIterator; 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.IOException; import java.io.FileInputStream; import java.nio.channels.FileChannel; import java.nio.charset.Charset; import java.util.Iterator; import java.util.Vector; import org.geotools.data.shapefile.ShapefileDataStore; import org.geotools.data.shapefile.ShapefileDataStoreFactory; import org.geotools.data.shapefile.dbf.DbaseFileReader; import org.geotools.data.shapefile.dbf.DbaseFileHeader; import org.geotools.data.shapefile.files.ShpFiles; import org.geotools.data.shapefile.shp.ShapefileReader; import org.opengis.feature.Property; import org.opengis.feature.simple.SimpleFeature; import com.vividsolutions.jts.geom.Geometry; import com.vividsolutions.jts.geom.GeometryFactory; public static void main(String[] args) throws Exception { FileChannel in = new FileInputStream("data/test.dbf").getChannel(); DbaseFileReader dr = new DbaseFileReader(in, true, Charset.forName("GBK")); DbaseFileHeader dh = dr.getHeader(); int fields = dh.getNumFields(); ShpFiles sf = new ShpFiles("data/test.shp"); ShapefileReader r = new ShapefileReader( sf, false, false, new GeometryFactory() ); Vector v1=new Vector(); while(dr.hasNext()&&r.hasNext()){ Geometry shape = (Geometry) r.nextRecord().shape(); //com.vividsolutions.jts.geom.Geometry; /*System.out.println(shape.toString());*/ Vector v=new Vector(); v.addElement(shape); DbaseFileReader.Row row = dr.readRow(); for (int i=0;i<fields;i++){ Object data = row.read(i); v.addElement(data); //处理中文 if(dh.getFieldName(i).equals("NAME")){ // TO-DO: charset error here. String name = new String(data.toString().getBytes(),"utf-8"); /* System.out.print(name);*/ }else{ /*System.out.print(data);*/ } /* System.out.print("\t");*/ } v1.addElement(v); } System.out.println(v1); r.close(); dr.close(); } }
相关文章推荐
- 学习GeoTools的Data模块的相关内容(下)-- (学习GIS【2】)
- GeoTools应用-JTS(Geometry)
- 使用Eclipse构建GeoTools项目
- Flex4.0+Blaseds+Spring+Hibernate实现地图服务发布平台(并结合GEOTOOLS)
- 简析服务端通过geotools导入SHP至PG的方法
- GeoTools Eclipse 快速入门04
- 开源GIS中间件Geotools 2.2.M2 发布
- 关于Geotools读取中文dbf的漏洞
- GeoTools应用-Filter
- Eclipse 中 Maven 项目报 tools1.5 missing 错误处理方法
- geotools使用外部图片
- geotools修改shapefile 属性名乱码问题
- geoTools使用实例1
- 开源GIS中间件Geotools 2.2.M2 发布
- maven报错Fatal error compiling: tools.jar not found错误的问题处理
- Geotools中实现NC转等值面
- python处理地理数据-geopandas和pyshp
- Geoimaging Accelerator Aerial 汉密尔顿市220景UltraCam D处理案例
- geotools实现shp数据的缓冲区分析
- 怎样运行地理处理工具 Geoprocessing & Geoprocessor & IGPProcess