Package cn.mapway.common.geo.tools
Class BaseTileExtractor
java.lang.Object
cn.mapway.common.geo.tools.BaseTileExtractor
- Direct Known Subclasses:
NoCrsTileExtractor,NoGCSTileExtractor,WebMercatorTileExtractor,WGS84TileExtractor
BaseTileExtractor
- Author:
- zhangjianshe <zhangjianshe@gmail.com>
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionbyte[]getBand(boolean singleBand, cn.mapway.ui.client.mvc.Size canvasSize, cn.mapway.geo.shared.vector.Rect targetRect, cn.mapway.geo.shared.vector.Rect sourceRect, List<BandData> sourceBandList, List<org.gdal.gdal.Band> targetBandList) 读取 三波段影像数据 并返回 Alpha波段数据byte[]getBlackBuffer(int size) 每张图片只能调用一次getSourceBuffer(int w, int h) getTargetBuffer(int w, int h) static cn.mapway.geo.shared.vector.PointimageSpaceToSourceSpace(double[] adfGeoTransform, cn.mapway.geo.shared.vector.Point pt) 根据仿射变换 将经纬度坐标转换到 影像的像素坐标空间 利用下面的公式进行逆变换求解 已知(XP YP ) 求解 (P L) * Xp = padfTransform[0] + P*padfTransform[1] + L*padfTransform[2]; * Yp = padfTransform[3] + P*padfTransform[4] + L*padfTransform[5];protected cn.mapway.geo.shared.vector.BoxlocationBoxPixelExtent(double[] adfGeoTransform, cn.mapway.geo.shared.vector.Box tileLngLatExtent) 根据仿射变换 将经纬度坐标转换到 影像的像素坐标空间 利用下面的公式进行逆变换求解 已知(XP YP ) 求解 (P L) * Xp = padfTransform[0] + P*padfTransform[1] + L*padfTransform[2]; * Yp = padfTransform[3] + P*padfTransform[4] + L*padfTransform[5];cn.mapway.geo.shared.vector.BoxlocationBoxPixelExtentFromWgs84(org.gdal.gdal.Dataset sourceDataset, cn.mapway.geo.shared.vector.Box tileLngLatExtent) 根据 wgs84坐标范围 转化为 影像 像素空间坐标static voidbooleanpreview(cn.mapway.geo.client.raster.ImageInfo imageInfo, org.gdal.gdal.Dataset sourceDataset, org.gdal.gdal.Dataset targetDataset, int targetWidth, int targetHeight) booleanprocessBands(cn.mapway.geo.client.raster.ImageInfo imageInfo, org.gdal.gdal.Dataset sourceDataset, org.gdal.gdal.Dataset targetDataset, List<BandData> sourceBandList, List<org.gdal.gdal.Band> targetBandList) 处理波段数据static cn.mapway.geo.shared.vector.PointrasterSpaceToImageSpace(double[] adfGeoTransform, cn.mapway.geo.shared.vector.Point pt) 根据仿射变换 将像素空间 转化为影像所在参考系下的坐标 利用 放射变化6参数进行变换 Xgeo = GT(0) + Xpixel*GT(1) + Yline*GT(2) Ygeo = GT(3) + Xpixel*GT(4) + Yline*GT(5)readAndTranslateToBytes256(byte[] transparentBand, BandData sourceBandData, int sourceX, int sourceY, int sourceWidth, int sourceHeight, int targetX, int targetY, int targetWidth, int targetHeight, int canvasWidth, int canvasHeight) 读取元数据 转换为 RGB byte 格式readImageBandSourceData(String location, int left, int top, int width, int height, int[] bands, int[] outBandsType) 直接读取目标影像中的数据 不进行采样readSourceDataNoTranslate(byte[] transparentBand, BandData sourceBandData, int sourceX, int sourceY, int sourceWidth, int sourceHeight, int targetX, int targetY, int targetWidth, int targetHeight, int tileWidth) 读取元数据 不进行格式转换 原始影像的一个举行区域 读取数据到 目标区域voidsetColorTable(cn.mapway.geo.shared.color.ColorTable table) 设置颜色表inttranslateColor(double value)
-
Constructor Details
-
BaseTileExtractor
public BaseTileExtractor()
-
-
Method Details
-
main
-
getBlackBuffer
public byte[] getBlackBuffer(int size) 每张图片只能调用一次- Returns:
-
getTargetBuffer
-
getSourceBuffer
-
processBands
public boolean processBands(cn.mapway.geo.client.raster.ImageInfo imageInfo, org.gdal.gdal.Dataset sourceDataset, org.gdal.gdal.Dataset targetDataset, List<BandData> sourceBandList, List<org.gdal.gdal.Band> targetBandList) 处理波段数据- Parameters:
imageInfo-sourceDataset-targetDataset-sourceBandList-targetBandList-- Returns:
- 如果用户要求的是单波段 就返回 true
-
readSourceDataNoTranslate
public ByteBuffer readSourceDataNoTranslate(byte[] transparentBand, BandData sourceBandData, int sourceX, int sourceY, int sourceWidth, int sourceHeight, int targetX, int targetY, int targetWidth, int targetHeight, int tileWidth) 读取元数据 不进行格式转换 原始影像的一个举行区域 读取数据到 目标区域- Parameters:
transparentBand-sourceX-sourceY-sourceWidth-sourceHeight-targetX-targetY-targetWidth-targetHeight-tileWidth-- Returns:
-
readAndTranslateToBytes256
public ByteBuffer readAndTranslateToBytes256(byte[] transparentBand, BandData sourceBandData, int sourceX, int sourceY, int sourceWidth, int sourceHeight, int targetX, int targetY, int targetWidth, int targetHeight, int canvasWidth, int canvasHeight) 读取元数据 转换为 RGB byte 格式- Parameters:
transparentBand-sourceX-sourceY-sourceWidth-sourceHeight-targetX-targetY-targetWidth-targetHeight-canvasWidth-canvasHeight-- Returns:
-
preview
public boolean preview(cn.mapway.geo.client.raster.ImageInfo imageInfo, org.gdal.gdal.Dataset sourceDataset, org.gdal.gdal.Dataset targetDataset, int targetWidth, int targetHeight) -
translateColor
public int translateColor(double value) - Parameters:
value- 0xRRGGBBAA- Returns:
-
readImageBandSourceData
public ByteBuffer[] readImageBandSourceData(String location, int left, int top, int width, int height, int[] bands, int[] outBandsType) 直接读取目标影像中的数据 不进行采样- Parameters:
left-top-width-height-bands- [1,2,3] start with 1- Returns:
- byteBuffer save the float value