当前位置: 首页 > 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.gsyq.cn/news/65052.html

相关文章:

  • 04-用户界面与交互系统
  • 玻璃反应釜生产厂TOP5权威推荐:专业选型、价格解析与低温适
  • 2025年安徽乡村别墅建造公司推荐:方合乡墅的后期维护成本高
  • 切片简介
  • 在Ubuntu WSL2里配置GDAL Docker环境
  • 2025年十大公寓床实力厂商排行榜,高校公寓床生产企业推荐
  • 2025年比较好的低回弹缆绳/超高分子量聚乙烯缆绳实力厂家TOP推荐榜
  • 2025年十大电力电缆供应商排行榜,电力电缆定制厂家选择哪家
  • 2025年工业冷风机创新技术排行,制造车间通风降温/锻打车间通风降温/铁皮棚车间通风降温/有热源的车间通风降温工业冷风机源头厂家口碑推荐榜
  • 2025年比较好的上海真空干燥机优质厂家推荐榜单
  • 2025年靠谱的阻尼5D滑轨/乐薄抽5D滑轨厂家推荐及采购参考
  • 2025年哈尔滨比较专业的西点培训学校TOP5推荐,蛋糕西点
  • 2025年质量好的mpp电力管TOP品牌厂家排行榜
  • 2025年热门的开口圆轮水泥垫块厂家最新权威实力榜
  • 2025年河南十大叛逆孩子学校推荐:靠谱的问题少年教育学校有
  • 2025哈尔滨短期西点培训排名:甜品西点培训学校有哪些
  • 2025年热门的隐藏三折轨最新TOP厂家排名
  • WGLOG日志审计系统如何采集网络设备的日志
  • 2025年评价高的燃气壁挂炉厂家推荐及采购参考
  • 03-几何建模基础
  • 07-REST-API与自动化
  • 06-安全管理与访问控制
  • 2025年评价高的印花无纺布手提袋/购物无纺布手提袋行业内口碑厂家排行榜
  • ImageMagick BMP解码器整数溢出漏洞深度分析
  • 2025年比较好的员工福利商城/员工福利品质保障
  • 你真的懂 C++ 吗?来看看这 5 个问题吧!
  • 完整教程:十七、STM32的TIM(八)(TIM输入捕获)
  • 2025年靠谱的精酿啤酒机/精酿啤酒设备最新TOP排名厂家
  • 2025年专注离婚财产分割的离婚财产分割律师热门榜单
  • 2025年海南人力资源管理师培训服务权威推荐榜单:人力资源管理师考证/高级人力资源管理师培训/中级人力资源管理师培训优质机构精选