gdal java api_Java使用GDAL库

GDAL(Geospatial Data Abstraction Library)是一个在X/MIT许可协议下的开源栅格空间数据转换库。它利用抽象数据模型来表达所支持的各种文件格式。它还有一系列命令行工具来进行数据转换和处理。

GDAL官方网址:http://www.gdal.org/,它能支持当前流行的各种地图数据格式,包括栅格和矢量地图,具体参考官方网站。该库使用C/C++开发,在java中使用需要自己编译,这里从网上下了好心网友编译好的库,在例子中就没有对库进行编译了。具体编译步骤可以参考

Java使用gdal时,只需将dll库放在项目根目录下即与src同级,然后引入jar即可,以下是在NetBeans下的展现形式:

228865bcb1d9bc1369ffc945cce94fce.png

使用gdal读取栅格数据

import org.gdal.gdal.Dataset;

import org.gdal.gdal.Driver;

import org.gdal.gdal.gdal;

import org.gdal.gdalconst.gdalconstConstants;

public class testgdal {

/**

* @param args

*/

public static void main(String[] args)

{

String fileName_tif = "F:\\aa.tif";

gdal.AllRegister();

Dataset hDataset = gdal.Open(fileName_tif, gdalconstConstants.GA_ReadOnly);

if (hDataset == null)

{

System.err.println("GDALOpen failed - " + gdal.GetLastErrorNo());

System.err.println(gdal.GetLastErrorMsg());

System.exit(1);

}

Driver hDriver = hDataset.GetDriver();

System.out.println("Driver: " + hDriver.getShortName() + "/" + hDriver.getLongName());

System.out.println("Size is " + hDataset.getRasterXSize() + ", "

+ hDataset.getRasterYSize());

hDataset.delete();

// 可选

gdal.GDALDestroyDriverManager();

}

}

使用gdal的ogr读取矢量数据

import org.gdal.ogr.DataSource;

import org.gdal.ogr.Layer;

import org.gdal.ogr.ogr;

/**

*

* @author WZH

*/

public class testogr {

/**

* @param args

*/

public static void main(String[] args)

{

String fileName_shp = "F:\\chengduroad.shp";

ogr.RegisterAll();

//在读取shp文件时需要将对应的shx文件放在同一目录下,否则会出错

DataSource ds = ogr.Open(fileName_shp);

if(ds == null) {

System.out.println("未找到文件!");

return;

}

//获取图层总数

int count = ds.GetLayerCount();

for(int i=0; i

Layer layer = ds.GetLayer(i);

double[] extend = layer.GetExtent();

for(int j=0; j

System.out.println(extend[j]);

}

}

}

}TestGDAL源码:

http://download.csdn.net/detail/a78460750/7802701

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/503347.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java reflectionutils_Spring中的各种Utils(五):ReflectionUtils详解(转载)

原文出处:https://blog.csdn.net/wolfcode_cn/article/details/80660515原创文章,转载请注明出处。本节中,我们来看看Spring针对反射提供的工具类:ReflectionUtils。反射在容器中使用是非常频繁的了,ReflectionUtils中…

java在线网页客服聊天_管理员消息java 网站用户在线和客服聊天

首先声明,我是一个菜鸟。一下文章中出现技术误导情况盖不负责这是应用到项目中的一个例子。实现原理是将信息存储到Application域里面。然后应用Struts2 Action 用json格式的数据停止前后台交互。截图:前台用户界面:后台客服界面:…

java股票数据_java抓取东方财富股票数据(附源码)

背景前段时间给朋友写了一个自动抓取同花顺股票数据的程序,不少人觉得不错。这几天后台有粉丝给我留言让我也抓一下东方财富的数据,说东方财富的数据特别难抓,我还真不一定能搞得定。本来我是一个德艺双磬且与世无争的佛系程序员,…

java string 转 inputstream_String和inputstream互转【转文】

URLConnection urlConn url.openConnection(); // 打开网站链接sBufferedReader reader new BufferedReader(new InputStreamReader(urlConn.getInputStream(), "UTF-8")); // 实例化输入流,并获取网页代码String s; // 依次循环,至到读的值…

java adminlte 使用_AdminLTE2管理后台自定义

项目中需要用到 AdminLTE 管理后台模板,所以,这里对后台进行一个简单的布局修改,然后结合后端语言进行快速开发一个管理后台。一、示例后台布局这个示例后台带了许多开箱即用的脚手架,我们项目中只需要简单的东东,所以…

学习Java编程面向对象的五大基本原则

Java 是面向对象的高级编程语言,类和对象是 Java 程序的构成核心。围绕着 Java 类和 Java 对象,有三大基本特性:封装是 Java 类的编写规范、继承是类与类之间联系的一种形式、而多态为系统组件或模块之间解耦提供了解决方案。 单一职责原则&…

小白学习Java技术知识点总结,其实学习Java没那么难

边学习边记录是程序员快速进步的途径,只有你不断累积知识,才能有质的飞跃,不断的coding,累积经验。 第一讲,主要是Java环境变量的配置。 搭建好环境才能干活。要理解什么是编译、什么是运行。编译是Javac.exe程序在负…

为什么说Java 程序员必须掌握 Spring Boot?

大部分人选择学习Java,自然是因为看上了Java的薪资待遇,java的地位可谓在编程界属于大佬,最近Spring Boot 2.0 的推出来后,又激起了一阵学习 Spring Boot 的热潮,那么, 使用 Spring Boot 会带来什么样的变革?一起来了…

你想成为Java架构师吗?掌握这六项就够了!

Java架构师,应该算是一些Java程序员们的一个职业目标了吧。很多码农码了五六年的代码也没能成为架构师。 我在这里分享6个专题来提高大家的编程能力 开源框架解析-架构师筑基-高性能架构-微服务架构-团队协作开发-B2C商城实战 一、开源框架解析: 程序…

主机不支持php5.4,GoDaddy Linux主机不再支持PHP5.3版本 | Godaddy美国主机中文指南

近日小编发现GoDaddy的Linux虚拟主机已经不再支持PHP5.3版本了,默认的都是5.4以上。也许是考虑到PHP5.4及以上版本性能更优,所以GoDaddy官方去掉了5.3的版本。GoDaddy的Linux虚拟主机支持PHPMySQL等程序环境,而PHP是目前网站程序中非常流行的…

Java并发编程以及并发须知的几个概念:什么是线程安全?

众所周知,在Java的知识体系中,并发编程是非常重要的一环,也是面试的必问题,一个好的Java程序员是必须对并发编程这块有所了解的。为了追求成为一个好的Java程序员,我决定从今天开始死磕Java的并发编程,尽量…

Java的主要特性有哪些?

Java语言是简单的: Java语言的语法与C语言和C语言很接近,使得大多数程序员很容易学习和使用。另一方面,Java丢弃了C中很少使用的、很难理解的、令人迷惑的那些特性,如操作符重载、多继承、自动的强制类型转换。特别地&#xff0c…

车载异构网络接入matlab,车载移动异构无线网络架构及关键技术

计算机技术、通信技术和微电子技术的迅速发展,以及三者之间的相互渗透和融合奠定了通信网络技术的应用,推动了社会信息化的发展。近年来,车辆的爆发式增长和无处不在的信息需求也日益将通信网络和车辆紧密结合起来。人们在车辆移动过程中的通…

Java的面试汇总,有这些还担心不通过?

面试官提问的内容通常会由易到难,如果前面容易的内容都答不上来,往往就被刷了,如果是前面提问的都答上来了,他会问一些有深度的问题,这时候就算你回答不上来也不要慌张,他只是看看你的薪资水平而已 接下来…

c matlab.h,用matlab和c写程序,include的mex.h在哪里?

span namewhlm idwhlm请看这个帖子【mcc、mbuild和mex命令详解】a href"http://www.matlabsky.com/thread-544-1-1.html"http://www.matlabsky.com/thread-544-1-1.html/a(1)创建MEX文件>>mcc –x filename (注意这个命令在2008a中已经去掉了)将M文件filename.…

Java开发需要达到什么样的水平才称得上架构师?

小编就从Java架构师(P7)岗位说起吧,年薪40w,那我们看看什么公司,什么级别可以给到,再看看要求。阿里是Java大厂,所以可以参考阿里的标准,阿里一般是16薪水,所以就是税前2…

java八股 mysql优化

数据库篇-01-MySQL篇-课程介绍_哔哩哔哩_bilibili 1.定位慢查询 2.分析优化慢查询 3.索引概念及结构 3.1 红黑树(一种自平衡的二叉排序树) 节点可以自动平衡保证log2 n的查找复杂度. 但因为是二叉树,数据多了层数还会多。 所以找一个多叉树 3…

Java开发中快速提升编码能力的方法有哪些?

Java是一种可以撰写跨平台应用软件的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。 Java是一种简单的&…

Java虚拟机知识汇总,有这些还怕面试被问到?

首先我们来看一下Java运行时的数据区域,Java虚拟机在执行Java程序的过程中,会把它所管理的内存,划分成若干个不同的数据区域,这些区域都有各自的用途,各自的创建和销毁的时间。 有的区域,随着虚拟机进程的…

Java的多线程以及内存模型的知识点梳理,有想到过这些吗?

JMM大致描述: JMM描述了线程如何与内存进行交互。Java虚拟机规范视图定义一种Java内存模型,来屏蔽掉各种操作系统内存访问的差异,以实现Java程序在各种平台下都能达到一致的访问效果。 JMM描述了JVM如何与计算机的内存进行交互 JMM都是围绕…