全部产品

栅格查询

更新时间:2019-08-13 10:04:32

栅格查询

在「栅格入库」环节,已经对影像进行数据分块、建立金字塔、重投影等操作。在这些操作完成后,数据会以「数据分块」的形式存放在HBase Ganos中,「数据分块」是地理服务发布、前端快速渲染的基础,本节介绍数据分块的查询方式。
查询接口包含「元数据」查询以及「数据分块数据」查询,以REST API方式开放。

元数据查询

在查询具体的数据分块数据之前,我们需要通过元数据来获取如下信息:

  • 图层名称
  • 每个图层的金字塔层级
  • 该图层数据分块的范围,也就是图层有多少行/列的数据分块数据

    获取图层与金字塔信息

  • API名称:/raster/layers

  • 方法:GET
  • 返回:Map> Json表示的图层对象集合
  • 下面示例中,返回的json数据,共有三个图层,每个图层后面的数字列表代表该图层具备的金字塔层级
    1. {
    2. "hunan_locallayout" : [ 0, 1, 10, 11, 2, 3, 4, 5, 6, 7, 8, 9 ],
    3. "luojia" : [ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10, 11 ],
    4. "rgb" : [ 0, 1,2, 3, 4, 5, 6, 7, 8, 9,10, 11, 12, 13 ]
    5. }

获取某图层的元数据信息

  • 名称:/raster/{layer}/{zoomLevel}/metadata
  • 方法:GET
  • 返回:List,json描述的图层metadata信息,其结构如下:
    • layoutDefinition : 图层layout信息,所谓Layout可以看做是覆盖整个图层的格网,一般会比图层要大
      • extent:图层layout的范围
      • tileLayout:
        • layoutCols:layout中的列数
        • layoutRows:layout中的行数
        • tileCols:每个数据分块的像素列数
        • tileRows:每个数据分块的像素行数
    • extent:图层的范围
    • bounds:数据分块所在图层的行列号范围,通过这个行列号去获取数据分块
    • cellType:数据分块的数据类型
    • crs:坐标参考
  • 下面是一个示例
    1. {
    2. "extent": {
    3. "xmin": 15454921.707580032,
    4. "ymin": 4158017.4539063596,
    5. "xmax": 15746189.05716395,
    6. "ymax": 4454374.551818466
    7. },
    8. "layoutDefinition": {
    9. "extent": {
    10. "xmin": -20037508.342789244,
    11. "ymin": -20037508.342789244,
    12. "xmax": 20037508.342789244,
    13. "ymax": 20037508.342789244
    14. },
    15. "tileLayout": {
    16. "layoutCols": 32,
    17. "layoutRows": 32,
    18. "tileCols": 256,
    19. "tileRows": 256
    20. }
    21. },
    22. "bounds": {
    23. "minKey": {
    24. "col": 28,
    25. "row": 12
    26. },
    27. "maxKey": {
    28. "col": 28,
    29. "row": 12
    30. }
    31. },
    32. "cellType": "int32",
    33. "crs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs "
    34. }

数据分块数据查询

根据元数据接口可以得知数据分块数据的相关信息,那么即可根据这些信息获取具体的数据分块数据

获取单个数据分块数据

  • API:/{schema}/{table}/tile/{tileLayer}/{tileRow}/{tileCol}/{tileHeight}?format=PNG/JPEG&version={version}&during={startTime/endTime}
  • 方法:GET
  • 返回格式:由参数format决定,取值为PNG或JPEG