| 
														
															@@ -4,7 +4,7 @@ import org.geotools.data.shapefile.ShapefileDataStore; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.geotools.data.store.ContentFeatureCollection; 
														 | 
														
														 | 
														
															 import org.geotools.data.store.ContentFeatureCollection; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.geotools.data.store.ContentFeatureSource; 
														 | 
														
														 | 
														
															 import org.geotools.data.store.ContentFeatureSource; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.geotools.feature.FeatureIterator; 
														 | 
														
														 | 
														
															 import org.geotools.feature.FeatureIterator; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-import org.locationtech.jts.geom.MultiLineString; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+import org.locationtech.jts.geom.Geometry; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import org.opengis.feature.simple.SimpleFeature; 
														 | 
														
														 | 
														
															 import org.opengis.feature.simple.SimpleFeature; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 import java.io.File; 
														 | 
														
														 | 
														
															 import java.io.File; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -19,49 +19,47 @@ import java.util.*; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  **/ 
														 | 
														
														 | 
														
															  **/ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 public class ShapeReader { 
														 | 
														
														 | 
														
															 public class ShapeReader { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   
														 | 
														
														 | 
														
															   
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    public ArrayList<Map> readShapeFile(String filePath) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        ArrayList<Map> modelList = new ArrayList<>(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        File folder = new File(filePath); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        if (!folder.isDirectory()) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            if (folder.toString().endsWith(".shp")) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                try { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    modelList = getShapeFile(folder); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    return modelList; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                } catch (Exception e) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                    e.printStackTrace(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            } else { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                System.out.println("选择的文件后缀名不是.shp"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        }else{ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	        File[] files = folder.listFiles(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	        if (!(files.length > 0)) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	            System.out.println("目录文件为空"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	            return modelList; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	        for (File file : files) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	            if (!file.toString().endsWith(".shp")) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	                continue; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	            try { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	                ArrayList<Map> models = getShapeFile(file); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	                modelList.addAll(models); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	            } catch (Exception e) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	                e.printStackTrace(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	            } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        return modelList; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//    public ArrayList<Map> readShapeFile(String filePath) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//        ArrayList<Map> modelList = new ArrayList<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//        File folder = new File(filePath); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//        if (!folder.isDirectory()) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//            if (folder.toString().endsWith(".shp")) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//                try { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//                    modelList = getShapeFile(folder); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//                    return modelList; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//                } catch (Exception e) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//                    e.printStackTrace(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//                } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//            } else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//                System.out.println("选择的文件后缀名不是.shp"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//        }else{ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	        File[] files = folder.listFiles(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	        if (!(files.length > 0)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	            System.out.println("目录文件为空"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	            return modelList; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+// 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	        for (File file : files) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	            if (!file.toString().endsWith(".shp")) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	                continue; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	            try { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	                ArrayList<Map> models = getShapeFile(file); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	                modelList.addAll(models); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	            } catch (Exception e) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	                e.printStackTrace(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//	        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//        return modelList; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+//    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   
														 | 
														
														 | 
														
															   
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    private ArrayList<Map> getShapeFile(File file) throws Exception { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+    public static List<String> getShapeFile(File file) throws Exception { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   
														 | 
														
														 | 
														
															   
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        Map<String, Object> map = new HashMap<String, Object>(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        map.put("url", file.toURI().toURL()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        ArrayList<Map> models = new ArrayList<>(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        ShapefileDataStore shpDataStore = null; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        List<String> list = new ArrayList<>(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        ShapefileDataStore shpDataStore = null; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         shpDataStore = new ShapefileDataStore(file.toURL()); 
														 | 
														
														 | 
														
															         shpDataStore = new ShapefileDataStore(file.toURL()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         //设置编码 
														 | 
														
														 | 
														
															         //设置编码 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         Charset charset = Charset.forName("GBK"); 
														 | 
														
														 | 
														
															         Charset charset = Charset.forName("GBK"); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -73,22 +71,11 @@ public class ShapeReader { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         FeatureIterator<SimpleFeature> itertor = result.features(); 
														 | 
														
														 | 
														
															         FeatureIterator<SimpleFeature> itertor = result.features(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         while (itertor.hasNext()) { 
														 | 
														
														 | 
														
															         while (itertor.hasNext()) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             SimpleFeature feature = itertor.next(); 
														 | 
														
														 | 
														
															             SimpleFeature feature = itertor.next(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            Map<String, String> model = new HashMap<>(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            MultiLineString multiLineString = (MultiLineString) feature.getDefaultGeometry(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            System.out.println(multiLineString.toText()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            models.add(model); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            list.add(GeoCastUtil.geomToWkt((Geometry)feature.getDefaultGeometry())); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         } 
														 | 
														
														 | 
														
															         } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        return models; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+        return list; 
														 | 
													
												
											
												
													
														| 
														 | 
														
															     } 
														 | 
														
														 | 
														
															     } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    public static void main(String[] args) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        //此处传值既可以是一个目录也可以是一个以.shp结尾的文件,如果是目录的话,会遍历读取所有的以.shp结尾的文件 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        String filePath = "E:\\zcjy\\一级河流hyd1_4m\\hyd1_4l.shp"; 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        ShapeReader shapeReader = new ShapeReader(); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        List<Map> shapeModels =  shapeReader.readShapeFile(filePath); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        for(Map shapeModel : shapeModels){ 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            System.out.println(shapeModel.toString()); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-        } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-    } 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															   
														 | 
														
														 | 
														
															   
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 |