欧美free性护士vide0shd,老熟女,一区二区三区,久久久久夜夜夜精品国产,久久久久久综合网天天,欧美成人护士h版

目錄

基于geotools postgis導(dǎo)入shp數(shù)據(jù)庫修改字段和表名

基于geotools postgis導(dǎo)入shp數(shù)據(jù)庫修改字段和表名

為了方便玩家搜索,單獨(dú)將次方法提出來   

 /**
     * 建表
     *
     * @param ds
     * @param featureSource
     * @return
     */
    public static JDBCDataStore createTable(JDBCDataStore ds, SimpleFeatureSource featureSource, String spatialName) {
        SimpleFeatureType schema = featureSource.getSchema();
        try {
            String[] allTableNames = ds.getTypeNames();
            //如果存在,則先刪除
            //這里根據(jù)需求決定是否刪除表
            if (allTableNames != null && ArrayUtils.contains(allTableNames, schema.getTypeName())) {
                ds.removeSchema(schema.getTypeName());
                //防止shp文件名大寫的問題
            } else if (ArrayUtils.contains(allTableNames, schema.getTypeName().toLowerCase())) {
                ds.removeSchema(schema.getTypeName().toLowerCase());
            } else {
            }
//由于此類屬性內(nèi)部不可變,所以需要獲取舊屬性,重新賦值給新建屬性.
            //獲取舊屬性
            List<AttributeDescriptor> oldAttributeDescriptors = schema.getAttributeDescriptors();
            //新屬性
            List<AttributeDescriptor> newAttributeDescriptors = new ArrayList<>();
            //新建feature構(gòu)造器
            SimpleFeatureTypeBuilder simpleFeatureTypeBuilder = new SimpleFeatureTypeBuilder();
            //設(shè)置表名
            simpleFeatureTypeBuilder.setName(schema.getName().toString().toLowerCase());
            //設(shè)置坐標(biāo)系
            simpleFeatureTypeBuilder.setCRS(schema.getCoordinateReferenceSystem());
//獲取屬性
            for (AttributeDescriptor oldAttributeDescriptor : oldAttributeDescriptors) {
//屬性構(gòu)造器
                AttributeTypeBuilder build = new AttributeTypeBuilder();
                build.init(oldAttributeDescriptor.getType());
                build.setNillable(true);
                //獲取字段名,改為小寫
                String name = StringUtils.isNotEmpty(oldAttributeDescriptor.getLocalName()) ? oldAttributeDescriptor.getLocalName().toLowerCase() : oldAttributeDescriptor.getLocalName();
                if (oldAttributeDescriptor instanceof GeometryDescriptor) {
//修改空間字段名
                    name = StringUtils.isNotEmpty(spatialName) ? spatialName : "shape";
                    GeometryTypeImpl geometryDescriptor = (GeometryTypeImpl) oldAttributeDescriptor.getType();
                    //獲取坐標(biāo)系,用于坐標(biāo)系轉(zhuǎn)換
                    coordinateReferenceSystem = geometryDescriptor.getCoordinateReferenceSystem();
                } else {
                }
                //設(shè)置字段名
                build.setName(name);
                //創(chuàng)建新的屬性類
                AttributeDescriptor descriptor = build.buildDescriptor(name, oldAttributeDescriptor.getType());
                newAttributeDescriptors.add(descriptor);
            }
            //使用新的屬性類
            simpleFeatureTypeBuilder.addAll(newAttributeDescriptors);
//獲取新屬性值                                                                                                                                                                                                                                                                                                                                                                                                                            
            schema = simpleFeatureTypeBuilder.buildFeatureType();
            //創(chuàng)建數(shù)據(jù)表
            ds.createSchema(schema);
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        return ds;
    }



本文內(nèi)容根據(jù)網(wǎng)絡(luò)資料整理,出于傳遞更多信息之目的,不代表金鑰匙跨境贊同其觀點(diǎn)和立場。

轉(zhuǎn)載請注明,如有侵權(quán),聯(lián)系刪除。

本文鏈接:http://gantiao.com.cn/post/18977078.html

發(fā)布評論

您暫未設(shè)置收款碼

請?jiān)谥黝}配置——文章設(shè)置里上傳

掃描二維碼手機(jī)訪問

文章目錄