java如何获取任意一个点的海拔

Python014

java如何获取任意一个点的海拔,第1张

由于大部分地图API不提供海拔这一参数,所以海拔要单独计算。

搭建好基于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)

}

}