当前位置: 首页 > news >正文

FileGDB代码示例

FileGDB代码示例

1. 读取FileGDB图层

1.1 实现思路

graph TDA[注册OGR] --> B[设置中文路径支持]B --> C[打开数据驱动]C --> D[打开数据源]D --> G[获取图层]G --> H[读取图层信息]

1.2 代码示例


public Layer readGdbLayer(String driverName,String gdbPath,String layerName) {ogr.RegisterAll();gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES");Driver driver = ogr.GetDriverByName(driverName);DataSource dataSource = driver.Open(gdbPath, 1);Layer layer = dataSource.GetLayerByName(layerName);for (int i = 0; i < layer.GetLayerDefn().GetFieldCount(); i++) {System.out.println(layer.GetLayerDefn().GetFieldDefn(i).GetName());}Feature feature = layer.GetNextFeature();while (feature != null) {for (int i = 0; i < feature.GetFieldCount(); i++) {System.out.println(feature.GetFieldDefnRef(i).GetName());System.out.println(feature.GetFieldAsString(i));}System.out.println(feature.GetGeometryRef().ExportToWkt());feature = layer.GetNextFeature();}return layer;}

2. 写入FileGDB图层

2.1 实现思路

graph TDA[注册OGR] --> B[设置中文路径支持]B --> C[打开数据驱动]C --> D[打开数据源或创建数据源]D --> G[获取图层或者创建图层]G --> H[向图层插入数据]H --> I[关闭数据源]

2.2 代码示例


public void writeGdbLayer(String driverName,String gdbPath,String featureDataset,String layerName,int wkid,String wkt) {ogr.RegisterAll();gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8", "YES");Vector options = null;if (CharSequenceUtil.isNotBlank(featureDataset)) {options = new Vector();options.add("FEATURE_DATASET=" + featureDataset);}Driver driver = ogr.GetDriverByName(driverName);DataSource dataSource = driver.Open(gdbPath, 1);if (dataSource == null) {dataSource = driver.CreateDataSource(gdbPath);}Layer layer = dataSource.GetLayerByName(layerName);if (layer == null) {SpatialReference sr = new SpatialReference();sr.ImportFromEPSG(wkid);layer = dataSource.CreateLayer(layerName, sr,6, options);}FieldDefn fieldDefn = new FieldDefn("TEST", 4);layer.CreateField(fieldDefn);Feature feature = new Feature(layer.GetLayerDefn());feature.SetGeometry(ogr.CreateGeometryFromWkt(wkt));feature.SetField("TEST", "test");layer.CreateFeature(feature);dataSource.delete();}

3. 读取FileGDB数据集

3.1 实现思路

graph TDA[配置GDAL环境] --> B[执行GDAL命令]B --> C[解析返回信息]C --> D[读取数据集信息]

3.2 代码示例


public void readGdbDs(String gisPath){SystemPropsUtil.set("GDAL_FILENAME_IS_UTF8", "YES");SystemPropsUtil.set("SHAPE_ENCODING", "UTF-8");String output = RuntimeUtil.execForStr(StandardCharsets.UTF_8, "ogrinfo", "-json", gisPath);String jout = null;if (!JSONUtil.isTypeJSONObject(output)) {jout = output.substring(output.indexOf("{"));}if (!JSONUtil.isTypeJSONObject(jout)) {jout = output.substring(output.indexOf("{"), output.lastIndexOf("}") + 1);}JSONObject jsonObject = JSON.parseObject(jout);String rootGroup = jsonObject.getString("rootGroup");System.out.println(rootGroup);}
http://www.jsqmd.com/news/54993/

相关文章:

  • 2025年中国十大比较好的AI智能客服企业推荐:口碑好且资质
  • 07-实战案例与最佳实践
  • 06-二次开发进阶
  • 2025年哈尔滨精密轴承企业综合实力前十强排行榜
  • 05-二次开发入门
  • 04-用户界面与交互系统
  • 玻璃反应釜生产厂TOP5权威推荐:专业选型、价格解析与低温适
  • 2025年中国测评系统定制开发服务推荐:靠谱的测评系统定制开
  • 2025年十大广州AI数字员工推荐排行榜,专业测评精选AI智
  • python中类似fhello, rhello 的用法还有哪些?
  • 声源定位与增强调研笔记
  • FreeRTOS 学习:(四)任务调度和任务状态 - 实践
  • 2025年安徽乡村别墅建造公司推荐:方合乡墅的后期维护成本高
  • 切片简介
  • 医疗AI助手获2亿美元融资,估值达60亿
  • 其他地图服务协议
  • Windows下的GDAL环境配置
  • OGC标准地图服务协议总结
  • 在Ubuntu WSL2里配置GDAL Docker环境
  • 基于jQuery的组织结构图插件实战——jOrgChart详解 - 教程
  • 2025年质量好的成都活动房商铺/成都住人活动房综合实力榜
  • 2025年热门的液压油过滤机/过滤机厂家推荐及选购指南
  • 2025年质量好的刮板结晶蒸发器厂家推荐及采购参考
  • 2025年热门的油滤油机/透平油滤油机最新TOP品牌厂家排行
  • 2025年热门的PP绳缆/绳缆TOP实力厂家推荐榜
  • 2025年比较好的潍坊吨包机/全自动吨包机最新TOP品牌厂家排行
  • 2025年比较好的低回弹缆绳/超高分子量聚乙烯缆绳实力厂家TOP推荐榜
  • 2025年十大电力电缆供应商排行榜,电力电缆定制厂家选择哪家
  • 2025年靠谱的橡胶件视觉点数包装机/密封件视觉点数包装机厂家最新实力排行
  • 2025年度工业酒精代理加工厂哪家技术强、服务商哪个靠谱