经纬度如下,导入的是高德地图下载的tif文件
lon = 112.9894083333
lat = 28.2216183333
java利用gdal转化到对应的行列号
//图像六要素
double[] dGeoTrans = hDataset.GetGeoTransform();
//经纬度转行列号
double dTemp = dGeoTrans[1] * dGeoTrans[5] - dGeoTrans[2] *dGeoTrans[4];
int Xline = (int)((dGeoTrans[5] * (lon - dGeoTrans[0]) -dGeoTrans[2] * (lat - dGeoTrans[3])) / dTemp + 0.5) ;
int Yline = (int)((dGeoTrans[1] * (lat - dGeoTrans[3]) -dGeoTrans[4] * (lon - dGeoTrans[0])) / dTemp + 0.5);
得到的行列号分别为 Xline =-1303716 Yline = 348851
因为行号为负数,肯定不能正常取到高程数据点
提问
1 是否是我下载的tif图片有问题?具有高程数据的tif图片是否一定要在谷歌地图下下载。我下载的高德地图的tif,可以读取出高程数据,但是有很多异常数据255,也有很多别的高度的数据。是否有办法确定图片下载有问题?
2 如果图片没有问题,是否算法有问题,解析不出经纬度?