java 操作shape文件进行坐标转换
1、引入gt-api,gt-shapefile,gt-opengis...相关jar包。
/*** shape文件坐标转换* @param srcfilepath 原目录* @param destfilepath 目标目录*/public static void transShape(String srcfilepath, String destfilepath,String param,String type,double L1,double L2) throws IOException,ArrayIndexOutOfBoundsException{try {//源shape文件ShapefileDataStore shapeDS = (ShapefileDataStore) new ShapefileDataStoreFactory().createDataStore(new File(srcfilepath).toURI().toURL());//创建目标shape文件对象Map params = new HashMap();FileDataStoreFactorySpi factory = new ShapefileDataStoreFactory();params.put(ShapefileDataStoreFactory.URLP.key, new File(destfilepath).toURI().toURL());ShapefileDataStore ds = (ShapefileDataStore) factory.createNewDataStore(params);// 获取原shape文件的坐标系CoordinateReferenceSystem coordinateReferenceSystem = shapeDS.getSchema().getCoordinateReferenceSystem();// 设置属性SimpleFeatureSource fs = shapeDS.getFeatureSource(shapeDS.getTypeNames()[0]);//根据源shape文件的simpleFeatureType可以不用retype,而直接用fs.getSchema设置,设置坐标系 DefaultGeographicCRS.WGS84ds.createSchema(SimpleFeatureTypeBuilder.retype(fs.getSchema(), coordinateReferenceSystem));//设置writerFeatureWriter writer = ds.getFeatureWriter(ds.getTypeNames()[0], Transaction.AUTO_COMMIT);//写记录SimpleFeatureIterator it = fs.getFeatures().features();ICoordTransAppMore ICoordTransAppMore = new CoordTransAppMoreImpl();try {while (it.hasNext()) {SimpleFeature f = it.next();SimpleFeature fNew = writer.next();List
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
