Opened 5 years ago

Last modified 3 years ago

#2255 closed enhancement

WMS does not work with two partially overlapping layers — at Version 5

Reported by: Bang Pham Huu Owned by: Bang Pham Huu
Priority: major Milestone: 11.0
Component: petascope Version: 9.8
Keywords: Cc: Dimitar Misev, Vlad Merticariu
Complexity: Medium

Description (last modified by Bang Pham Huu)

If two WMS layers are overlaid from WMS clients but they don't intersect completely from grid domains, then rasql will show error, e.g:

sdom(BlueMarbleCov): [0:17999,0:8999]
sdom(Germany_2D_B04_10m): [0:5000,0:5000]
SELECT ENCODE( ( Scale( ( ( c1[5473:5972, 1145:1787] ) ), [0:255, 0:255] ) ) 

OVERLAY 

( Scale( ( ( c0[9984:10054, 1828:1898] ) ), [0:255, 0:255] ) ) , "png",

FROM BlueMarbleCov AS c0, Germany_2D_B04_10m AS c1

with error

Reason: The subset extent [5473:5972,1145:1787] extends outside the array extent [0:5000,0:5000]

It will need to enhance in WMS with:

  • If a subset is within the collection's grid domain, use the current implementation.
  • If a subset only intersects with the collection's grid domain, it needs to use extend, e.g:
rasql -q 'select extend(c[0:20,0:50], [0:255,0:255]) from BlueMarbleCov as c'
  • If a subset is outside of collection's grid domain, then no need to create a null grid domains for this collection as it is not used.

Change History (5)

comment:1 by Bang Pham Huu, 5 years ago

Owner: set to Bang Pham Huu
Status: newassigned
Summary: WMS - does not work with two partially overlapping layersWMS does not work with two partially overlapping layers

comment:2 by Bang Pham Huu, 5 years ago

Milestone: 10.011.0
Priority: criticalminor
Type: defectenhancement

This is a new feature actually in WMS which allows to return result from 2 layers in different domains.

comment:3 by Bang Pham Huu, 5 years ago

WMS client can support this case by adding separated layers (the overlaying will be done by WMS client), e.g: with openlayers to request 2 different layers with different UTM zones:

              new ol.layer.Tile({
                source: new ol.source.TileWMS({
                    url: "http://localhost:8082/rasdaman/ows",
                    params: {'LAYERS': 'utm31_2d_wgs84,'}
                })
              }),

            new ol.layer.Tile({
                source: new ol.source.TileWMS({
                    url: "http://localhost:8082/rasdaman/ows",
                    params: {'LAYERS': 'utm32_2d_wgs84'}
                })
              })

comment:4 by Dimitar Misev, 3 years ago

Priority: minormajor

comment:5 by Bang Pham Huu, 3 years ago

Description: modified (diff)
Note: See TracTickets for help on using tickets.