1、矢量图层
打开矢量图层,并显示基本信息。
图层数,驱动名,图层网格范围,属性表结构信息,矢量元素,及矢量元素的属性
public static void info(String srcFile) {
// 读取原图
DataSource srcDataSource = ogr.Open(srcFile, 0);
if (srcDataSource == null) {
System.err.println("GDALOpen failed - " + gdal.GetLastErrorNo());
System.err.println(gdal.GetLastErrorMsg());
return;
}
// 获取该数据源中的图层个数,一般shp数据图层只有一个,如果是mdb、dxf等图层就会有多个
int layerCount = srcDataSource.GetLayerCount();
System.out.println("图层数 = " + layerCount);
if (layerCount < 1) {
System.err.println("异常:没有图层。");
return;
}
System.out.println(srcDataSource.GetDriver().GetName());
Layer layer = srcDataSource.GetLayer(0);
// 对图层进行初始化,如果对图层进行了过滤操作,执行这句后,之前的过滤全部清空
layer.ResetReading();
// 通过属性表的SQL语句对图层中的要素进行筛选,这部分详细参考SQL查询章节内容
// layer.SetAttributeFilter("\"NAME99\"LIKE \"北京市市辖区\"");
// 通过指定的几何对象对图层中的要素进行筛选
// layer.SetSpatialFilter();
// 通过指定的四值范围对图层中的要素进行筛选
// layer.SetSpatialFilterRect();
double[] extent = layer.GetExtent(true);
System.out.println("extent is " + extent[0] + ", " + extent[1] + ", " + extent[2] + ", " + extent[3]);
// 获取图层中的属性表表头并输出
System.out.println("属性表结构信息:");
FeatureDefn featureDefn = layer.GetLayerDefn();
int fieldCount = featureDefn.GetFieldCount();
for (int index = 0; index < fieldCount; index++) {
FieldDefn fieldDefn = featureDefn.GetFieldDefn(index);
System.out.println(fieldDefn.GetNameRef

该博客介绍了如何使用GIS库进行矢量图层的基本信息展示,包括图层数、属性表结构、要素信息等。然后讲解了如何创建网格,并基于矢量图层的范围创建矩形网格。最后,展示了如何通过图层的Intersection方法计算矢量图层与网格的交集,实现空间分析。内容涵盖了GIS数据处理的关键步骤。
最低0.47元/天 解锁文章
1208

被折叠的 条评论
为什么被折叠?



