java读取shp文件_GDAL-java读取shp文件信息
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文件信息相关推荐
- java并发读取相同的文件_高效读取大文件,再也不用担心 OOM 了!
最近阿粉接到一个需求,需要从文件读取数据,然后经过业务处理之后存储到数据库中.这个需求,说实话不是很难,阿粉很快完成了第一个版本. 内存读取 第一个版本,阿粉采用内存读取的方式,所有的数据首先读读取到 ...
- java读取hdfs文件夹_HDFS 读取、写入、遍历文件夹获取文件全路径、append
1.从HDFS中读取数据 Configuration conf = getConf(); Path path = new Path(pathstr); FileSystem fs = FileSyst ...
- java中mypoiexception_Java中使用POI读取大的Excel文件或者输入流时发生out of memory异常参考解决方案...
注意:此参考解决方案只是针对xlsx格式的excel文件! 背景 前一段时间遇到一种情况,服务器经常宕机,而且没有规律性,查看GC日志发生了out of memory,是堆溢出导致的,分析了一下堆的d ...
- java中属性文件读取案例_java相关:Spring中属性文件properties的读取与使用详解
java相关:Spring中属性文件properties的读取与使用详解 发布于 2020-6-3| 复制链接 摘记: Spring中属性文件properties的读取与使用详解实际项目中,通常将一些 ...
- Java如何读取JAR包外的properties文件及打成jar包后无法读取到jar包内的properties文件
项目中,经常把一部分功能独立出来,做一个java project,然后打成jar包供其他项目引用.这时候,如果jar包中需要读取配置文件信息,则很少把该配置打进jar包,因为它不方便修改,更多都是采 ...
- java文件读取异常_关于Java:从文本文件读取会引发异常
因此,我使用了DataInputStream,FileInputStream,BufferInputStream,FileReader,BufferedReader,Scanner,将其命名. 它们都 ...
- java io流(字符流) 文件打开、读取文件、关闭文件
java io流(字符流) 文件打开 读取文件 关闭文件 //打开文件 //读取文件内容 //关闭文件 import java.io.*;public class Index{public stati ...
- java校验文件格式_Java 判断文件是否为文本格式,并获取文件编码格式,读取内容!...
我们经常会遇到读取文件内容的情况,就需要判断文件是否为文本文件,及文件编码格式,防止无法读取内容或乱码出现情况. 根据文件扩展名判定不太准确,可能会遇到未知扩展名或被修改了扩展名,下面的测试类使用文件 ...
- java xml 反射_Java 读取XML文件以及Java 的反射机制实现
Java 读取XML文件以及Java 的反射机制实现 代码部分 import java.io.File; import javax.xml.parsers.DocumentBuilder; impor ...
- java 读取文件内容 实例_Java 实例 – 读取文件内容 - Java 基础教程
Java 实例 以下实例演示了使用 readLine() 方法来读取文件 test.log 内容,其中 test.log 文件内容为: 本站 www.runoob.com java 代码如下: Mai ...
最新文章
- 计算机为什么找不到c盘d盘,电脑不显示是什么盘?是C盘还是D盘?怎么才能显示出来呢?...
- 一组基于OpenCV的图像处理函数
- leetcode(2)495——提莫攻击(C++),运算符优先级(+=,?,+,-)
- web文件怎么传到服务器,web文件传到服务器
- Git 版本管理工具命令速查
- paroot忘记root密码
- ubuntu中如何查看系统信息(uname)
- [转载]Codejock Xtreme ToolkitPro MFC 使用
- win7常见问题汇总
- 使用Simian检查Java项目中冗余代码
- python画七彩圆圈_【彩虹手工】 创意彩虹帽子,吊饰,绘画,玩具,给孩子们一个七彩梦吧!...
- maya 替换名称_Maya玛雅入门教程 MAYA粒子替换功能和Mel命令colorAtPoint教程
- Java300StudyNote(7)-Java各版本JavaSE、JavaEE、JavaME
- Github全封41万俄罗斯开发者账号,开源真的无国界
- 对于Python中@property的理解和使用
- python中 a or b 的值为_若a=1, b=2,那么(a or b)的值为( )。 (2.0分)_学小易找答案...
- java epics_EPICS超入门-KEKe+e-.PDF
- Win11怎么看用了多少流量?
- python车牌定位
- 预测贷款用户是否逾期:数据清洗与预处理