| | |
| | | package com.lf.server.helper; |
| | | |
| | | import com.lf.server.entity.all.StaticData; |
| | | import com.lf.server.entity.ctrl.MarkJsonEntity; |
| | | import com.lf.server.entity.ctrl.ShpRecordEntity; |
| | | import org.apache.commons.logging.Log; |
| | |
| | | for (int i = 0; i < layer.GetFeatureCount(); i++) { |
| | | Feature f = layer.GetFeature(i); |
| | | |
| | | MarkJsonEntity me = new MarkJsonEntity(i + 1); |
| | | MarkJsonEntity me = new MarkJsonEntity(i + 1L); |
| | | for (Integer key : fieldMap.keySet()) { |
| | | Field field = fieldMap.get(key); |
| | | GdbHelper.setValue(me, f, field, key); |
| | |
| | | } |
| | | |
| | | SpatialReference sr = new SpatialReference(); |
| | | sr.ImportFromEPSG(4326); |
| | | sr.ImportFromEPSG(StaticData.I4326); |
| | | |
| | | int geoType = getGeometryType(type); |
| | | layer = dataSource.CreateLayer(type.toLowerCase(), sr, geoType); |
| | |
| | | return null; |
| | | } |
| | | |
| | | FieldDefn fdName = new FieldDefn("name", ogr.OFTString); |
| | | fdName.SetWidth(50); |
| | | layer.CreateField(fdName, 0); |
| | | |
| | | FieldDefn fdProps = new FieldDefn("props", ogr.OFTString); |
| | | fdProps.SetWidth(1024); |
| | | // layer.DeleteField(layer.FindFieldIndex("name", 1)) |
| | | layer.CreateField(fdProps, 1); |
| | | List<Field> fields = new ArrayList<>(); |
| | | GdbHelper.getFields(MarkJsonEntity.class, fields, StaticData.MARK_EXCLUDE_FIELDS); |
| | | GdbHelper.addLayerField(layer, fields); |
| | | |
| | | FeatureDefn featureDefn = layer.GetLayerDefn(); |
| | | for (MarkJsonEntity mje : list) { |
| | | Geometry geo = Geometry.CreateFromWkt(mje.getWkt()); |
| | | |
| | | for (MarkJsonEntity t : list) { |
| | | Feature f = new Feature(featureDefn); |
| | | f.SetField(0, mje.getName()); |
| | | //f.SetField(1, mje.getProps()); |
| | | GdbHelper.setFeatureData(f, fields, t); |
| | | |
| | | Geometry geo = Geometry.CreateFromWkt(t.getWkt()); |
| | | f.SetGeometry(geo); |
| | | |
| | | layer.CreateFeature(f); |
| | |
| | | private static int getGeometryType(String type) { |
| | | switch (type) { |
| | | case "POINT": |
| | | return 1; |
| | | return ogr.wkbPoint; |
| | | case "LINESTRING": |
| | | return 2; |
| | | return ogr.wkbLineString; |
| | | case "POLYGON": |
| | | return 3; |
| | | return ogr.wkbPolygon; |
| | | default: |
| | | return -1; |
| | | return ogr.wkbUnknown; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 读取数据 |
| | | */ |
| | | public static <T> List<T> readData(Class clazz, String filePath) { |
| | | public static <T> List<T> readData(Class clazz, String filePath, boolean isTransform) { |
| | | List<T> list = new ArrayList<>(); |
| | | |
| | | Driver driver = null; |
| | |
| | | } |
| | | |
| | | Layer layer = dataSource.GetLayer(0); |
| | | GdbHelper.readLayer(clazz, layer, list); |
| | | GdbHelper.readLayer(clazz, layer, list, isTransform); |
| | | } catch (Exception ex) { |
| | | log.error(ex.getMessage(), ex); |
| | | } finally { |