管道基础大数据平台系统开发-【后端】-Server
1
13693261870
2023-02-15 d3f4ed7fe49808a944053674f757edd889e192b2
1
已修改2个文件
65 ■■■■ 文件已修改
src/main/java/com/lf/server/helper/GdbHelper.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/ShpHelper.java 59 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/lf/server/helper/GdbHelper.java
@@ -242,7 +242,7 @@
    /**
     * 设置值
     */
    private static <T> void setValue(T t, Feature f, Field field, Integer i) throws Exception {
    public static <T> void setValue(T t, Feature f, Field field, Integer i) throws Exception {
        switch (field.getType().getName()) {
            case "java.math.BigDecimal":
                double dd = f.GetFieldAsDouble(i);
@@ -313,7 +313,7 @@
    /**
     * 获取 Timestamp
     */
    private static Timestamp getTimestamp(Feature f, int index) {
    public static Timestamp getTimestamp(Feature f, int index) {
        int[] pnYear = new int[1];
        int[] pnMonth = new int[1];
        int[] pnDay = new int[1];
@@ -339,7 +339,7 @@
    /**
     * 获取 LocalDate
     */
    private static LocalDate getLocalDate(Feature f, int index) {
    public static LocalDate getLocalDate(Feature f, int index) {
        int[] pnYear = new int[1];
        int[] pnMonth = new int[1];
        int[] pnDay = new int[1];
src/main/java/com/lf/server/helper/ShpHelper.java
@@ -78,25 +78,13 @@
            }
            layer = dataSource.GetLayer(0);
            FeatureDefn featureDefn = layer.GetLayerDefn();
            Map<Integer, Field> fieldMap = new HashMap(5);
            for (int i = 0, count = featureDefn.GetFieldCount(); i < count; i++) {
                try {
                    FieldDefn fieldDefn = featureDefn.GetFieldDefn(i);
                    Field field = MarkJsonEntity.class.getDeclaredField(fieldDefn.GetName().toLowerCase());
                    field.setAccessible(true);
                    fieldMap.put(i, field);
                } catch (Exception e) {
                    //
                }
            }
            long count = layer.GetFeatureCount();
            if (count == 0 || fieldMap.size() == 0) {
            if (layer.GetFeatureCount() == 0) {
                return null;
            }
            return setMarkJsonEntity(layer, fieldMap);
            Map<Integer, Field> fields = getShpFields(layer);
            return setMarkJsonEntity(layer, fields);
        } catch (Exception ex) {
            log.error(ex.getMessage(), ex);
            return null;
@@ -106,30 +94,39 @@
    }
    /**
     * 获取shp字段信息
     */
    private static Map<Integer, Field> getShpFields(Layer layer) {
        FeatureDefn featureDefn = layer.GetLayerDefn();
        Map<Integer, Field> fields = new HashMap(3);
        for (int i = 0, count = featureDefn.GetFieldCount(); i < count; i++) {
            try {
                FieldDefn fieldDefn = featureDefn.GetFieldDefn(i);
                Field field = MarkJsonEntity.class.getDeclaredField(fieldDefn.GetName());
                field.setAccessible(true);
                fields.put(i, field);
            } catch (Exception e) {
                //
            }
        }
        return fields;
    }
    /**
     * 设置标绘实体类
     */
    private static List<MarkJsonEntity> setMarkJsonEntity(Layer layer, Map<Integer, Field> fieldMap) throws Exception {
        List<MarkJsonEntity> list = new ArrayList<MarkJsonEntity>();
        List<MarkJsonEntity> list = new ArrayList<>();
        for (int i = 0; i < layer.GetFeatureCount(); i++) {
            Feature f = layer.GetFeature(i);
            MarkJsonEntity me = new MarkJsonEntity(i + 1);
            for (Integer key : fieldMap.keySet()) {
                Field field = fieldMap.get(key);
                switch (field.getType().toString()) {
                    case "double":
                        field.set(me, f.GetFieldAsDouble(i));
                        break;
                    case "long":
                        field.set(me, f.GetFieldAsInteger64(i));
                        break;
                    case "int":
                        field.set(me, f.GetFieldAsInteger(i));
                        break;
                    default:
                        field.set(me, f.GetFieldAsString(i));
                        break;
                }
                GdbHelper.setValue(me, f, field, key);
            }
            me.setWkt(f.GetGeometryRef().ExportToWkt());