ReadShp.java代码

package Vector;

import org.gdal.gdal.gdal;

import org.gdal.ogr.*;

import org.gdal.osr.SpatialReference;

import java.util.HashMap;

import java.util.Map;

//读取某个磁盘路径下的shp文件信息(范围、属性等)

public class ReadShp {

public static void main(String[] args) throws Exception {

//指定文件的名字和路径

String strVectorFile ="E:\\test\\test.shp";

// 注册所有的驱动

ogr.RegisterAll();

//配置GDAL_DATA路径(gdal根目录下的bin\gdal-data)

gdal.SetConfigOption("GDAL_DATA","F:\\GDAL学习文件夹\\release-1900-x64-gdal-2-3-2-mapserver-7-2-1\\bin\\gdal-data");

// 为了支持中文路径,请添加下面这句代码

gdal.SetConfigOption("GDAL_FILENAME_IS_UTF8","YES");

// 为了使属性表字段支持中文,请添加下面这句

gdal.SetConfigOption("SHAPE_ENCODING","CP936");

//读取数据,这里以ESRI的shp文件为例

String strDriverName = "ESRI Shapefile";

//创建一个文件,根据strDriverName扩展名自动判断驱动类型

org.gdal.ogr.Driver oDriver =ogr.GetDriverByName(strDriverName);

if (oDriver == null) {

System.out.println(strDriverName+ " 驱动不可用!\n");

return;

}

DataSource dataSource = oDriver.Open(strVectorFile);

Layer layer = dataSource.GetLayer("test");

String layerName = layer.GetName();

System.out.println("图层名称:"+layerName);

SpatialReference spatialReference = layer.GetSpatialRef();

//System.out.println(spatialReference);

System.out.println("空间参考坐标系:"+spatialReference.GetAttrValue("AUTHORITY",0)+spatialReference.GetAttrValue("AUTHORITY",1));

double[] layerExtent = layer.GetExtent();

System.out.println("图层范围:minx:"+layerExtent[0]+",maxx:"+layerExtent[1]+",miny:"+layerExtent[2]+",maxy:"+layerExtent[3]);

FeatureDefn featureDefn = layer.GetLayerDefn();

int fieldCount = featureDefn.GetFieldCount();

Map fieldMap = new HashMap();

for(int i=0; i

FieldDefn fieldDefn = featureDefn.GetFieldDefn(i);

//得到属性字段类型

int fieldType = fieldDefn.GetFieldType();

String fieldTypeName = fieldDefn.GetFieldTypeName(fieldType);

//得到属性字段名称

String fieldName = fieldDefn.GetName();

fieldMap.put(fieldTypeName,fieldName);

}

long featureCount = layer.GetFeatureCount();

System.out.println("图层要素个数:"+featureCount);

for(int i=0; i

Feature feature = layer.GetFeature(i);

Object[] arr = fieldMap.values().toArray();

for(int k=0; k

String fvalue = feature.GetFieldAsString(arr[k].toString());

System.out.print(" 属性名称:"+arr[k].toString()+",属性值:"+fvalue);

}

System.out.println();

}

}

}

image.png

java读取shp文件_GDAL-java读取shp文件信息相关推荐

  1. java并发读取相同的文件_高效读取大文件,再也不用担心 OOM 了!

    最近阿粉接到一个需求,需要从文件读取数据,然后经过业务处理之后存储到数据库中.这个需求,说实话不是很难,阿粉很快完成了第一个版本. 内存读取 第一个版本,阿粉采用内存读取的方式,所有的数据首先读读取到 ...

  2. java读取hdfs文件夹_HDFS 读取、写入、遍历文件夹获取文件全路径、append

    1.从HDFS中读取数据 Configuration conf = getConf(); Path path = new Path(pathstr); FileSystem fs = FileSyst ...

  3. java中mypoiexception_Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案...

    注意:此参考解决方案只是针对xlsx格式的excel文件! 背景 前一段时间遇到一种情况,服务器经常宕机,而且没有规律性,查看GC日志发生了out of memory,是堆溢出导致的,分析了一下堆的d ...

  4. java中属性文件读取案例_java相关:Spring中属性文件properties的读取与使用详解

    java相关:Spring中属性文件properties的读取与使用详解 发布于 2020-6-3| 复制链接 摘记: Spring中属性文件properties的读取与使用详解实际项目中,通常将一些 ...

  5. Java如何读取JAR包外的properties文件及打成jar包后无法读取到jar包内的properties文件

    项目中,经常把一部分功能独立出来,做一个java  project,然后打成jar包供其他项目引用.这时候,如果jar包中需要读取配置文件信息,则很少把该配置打进jar包,因为它不方便修改,更多都是采 ...

  6. java文件读取异常_关于Java:从文本文件读取会引发异常

    因此,我使用了DataInputStream,FileInputStream,BufferInputStream,FileReader,BufferedReader,Scanner,将其命名. 它们都 ...

  7. java io流(字符流) 文件打开、读取文件、关闭文件

    java io流(字符流) 文件打开 读取文件 关闭文件 //打开文件 //读取文件内容 //关闭文件 import java.io.*;public class Index{public stati ...

  8. java校验文件格式_Java 判断文件是否为文本格式,并获取文件编码格式,读取内容!...

    我们经常会遇到读取文件内容的情况,就需要判断文件是否为文本文件,及文件编码格式,防止无法读取内容或乱码出现情况. 根据文件扩展名判定不太准确,可能会遇到未知扩展名或被修改了扩展名,下面的测试类使用文件 ...

  9. java xml 反射_Java 读取XML文件以及Java 的反射机制实现

    Java 读取XML文件以及Java 的反射机制实现 代码部分 import java.io.File; import javax.xml.parsers.DocumentBuilder; impor ...

  10. java 读取文件内容 实例_Java 实例 – 读取文件内容 - Java 基础教程

    Java 实例 以下实例演示了使用 readLine() 方法来读取文件 test.log 内容,其中 test.log 文件内容为: 本站 www.runoob.com java 代码如下: Mai ...

最新文章

  1. 封装、继承、多态、访问符,范围修饰符
  2. ECCV 2020 | 图匠数据、华中师范提出低质退化文本识别算法PlugNet
  3. 开始用Tornado:从Hello World开始
  4. linux文件乱码crt,Linux中文文件显示乱码或Secure CRT显示乱码解决方案
  5. java实训文献_java毕设论文参考文献.doc
  6. linux i2c驱动协议
  7. 现代处理器设计——超标量处理器基础(5-8)
  8. 图解R树的原理及相关操作
  9. 中医预约挂号系统,代煎取药功能原来这样用?
  10. 数据中台(五)数据开发:数据价值提炼工厂
  11. 数据库课程设计:利用python+MySQL+pyqt5设计一个带UI界面的书店管理系统
  12. 使用上古神器帮姐姐完成寸照自动排版/打印
  13. 软考·系统架构师论文——论软件的高并发设计
  14. win10系统如何看服务器地址,win10查看电脑DNS服务器地址具体步骤
  15. 游戏版号停发和疫情反复的这半年,UWA如何躬身入局?
  16. 《俗人笔记》之《Java基础语法上》
  17. 工笔佛像怎么看和基本线条怎么画
  18. SDNFV Fest论坛成功举办 全景展现SDN/NFV测试成果
  19. java国际象棋棋牌_用java画国际象棋棋盘
  20. RS485自行收发的实现方法

热门文章

  1. php 中文地址伪静态,.htaccess实现含中文的url伪静态跳转
  2. 手机麦克风结构原理图_驻极体电容式麦克风结构和工作原理
  3. 【外星眼halcon教程】机器视觉测量消费电子显示屏的颜色
  4. centos7 安装java8
  5. vc2008程序发布指南
  6. 最近不少朋友问WPS专业版,再发一次
  7. linux和cisco有关系吗,如何在Linux环境下安装Cisco RTMT
  8. Install deepin-wine QQ inside a docker image in Ubuntu 20.04
  9. android imagebutton 动画,来自ImageButton的图像没有在Android Studio的模拟器上显示
  10. VMware Cloud Director 10.3 发布(下载) - 云计算调配和管理平台