搭建好基于Java的GDAL运行环境和相关的配置
参数 坐标点 以及 需要读取的高程数据(底图)
package com.chinalbs.qhxm.util
import org.gdal.gdal.Band
import org.gdal.gdal.Dataset
import org.gdal.gdal.Driver
import org.gdal.gdal.gdal
import org.gdal.gdalconst.gdalconstConstants
public class AltitudeUtil {undefined
public static void main(String[] args){undefined
//参数经纬度(小数形式)
Integer selectAltitude = SelectAltitude(100.3445, 37.003)
System.out.println(“海拔是:”+selectAltitude+“米”)
}
public static Integer SelectAltitude (double lon,double lat){undefined
//海拔
Integer altitude =0
//支持所有驱动
gdal.AllRegister()
//要读取的文件,经纬度不可超过查询地图的范围,否则结果为null
//海拔读取为DEM高程数据
String fileName_tif = “C:/Users/Tysheng/Desktop/海北州高程数据/HAIBEIZHOU_DEM.TIF”
//只读方式读取数据
Dataset hDataset = gdal.Open(fileName_tif, gdalconstConstants.GA_ReadOnly)
//支持中文路径
gdal.SetConfigOption(“gdal_FILENAME_IS_UTF8”, “YES”)
//判断是否非空
if (hDataset == null)
{undefined
System.err.println("GDALOpen failed - " + gdal.GetLastErrorNo())
System.err.println(gdal.GetLastErrorMsg())
System.exit(1)
}
//图像的列和行
Driver hDriver = hDataset.GetDriver()
int iXSize = hDataset.getRasterXSize()
int iYSize = hDataset.getRasterYSize()
Band band = hDataset.GetRasterBand(1)
int buf[] = new int[iXSize]
//循环遍历取出像元值
for(int i=0i<iYSizei++){undefined
}
java 每天获得8点这一时刻的long值,主要是使用timer类,来每隔一天执行,进行调度,如下代码:
package com.qiu.lin.he
import java.util.Calendar
import java.util.Timer
import java.util.TimerTask
public class Ceshi {
public static void main(String[] args) {
Timer timer = new Timer()//新建Timer类
Calendar cal = Calendar.getInstance()
// 每天定点执行
cal.set(Calendar.HOUR_OF_DAY, 8)
cal.set(Calendar.MINUTE, 0)
cal.set(Calendar.SECOND, 0)
timer.schedule(new TimerTask() {//每天执行输出时间
@Override
public void run() {
System.out.println(System.currentTimeMillis())
}
}, cal.getTime(), 24 * 60 * 60 * 1000)
}
}