From 2be5068db3f5b5ead0ee9262e1ad96c6d8d7c4d2 Mon Sep 17 00:00:00 2001 From: gena Date: Thu, 5 Jan 2023 03:19:55 +0100 Subject: [PATCH] Fix #117, implement identify tool for v3.22 --- provider.py | 32 +++++++++----------------------- utils.py | 2 ++ 2 files changed, 11 insertions(+), 23 deletions(-) diff --git a/provider.py b/provider.py index 0d59ec3..745f48d 100644 --- a/provider.py +++ b/provider.py @@ -330,6 +330,7 @@ def getLegendGraphicUrl(self): def clone(self): provider = EarthEngineRasterDataProvider(*self._args, **self._kwargs) provider.wms.setDataSourceUri(self.wms.dataSourceUri()) + provider.set_ee_object(self.ee_object) provider.setParent(EarthEngineRasterDataProvider.PARENT) return provider @@ -345,29 +346,14 @@ def sourceDataType(self, band_no): return self.wms.sourceDataType(band_no) def bandCount(self): - return self.wms.bandCount() - - # def dataType(self, band_no): - # if not self.ee_object: - # return self.wms.dataType(band_no) - - # return self.sourceDataType(band_no) - - # def sourceDataType(self, band_no): - # if self.ee_object: - # print(f'sourceDataType: {BAND_TYPES[self.ee_info["bands"][band_no - 1]["data_type"]["precision"]]}') - # return BAND_TYPES[self.ee_info['bands'][band_no - 1]['data_type']['precision']] - # else: - # print(f'sourceDataType2: {self.wms.sourceDataType(band_no)}') - # return self.wms.sourceDataType(band_no) - - # def bandCount(self): - # if self.ee_object: - # print(f'bandCount: {len(self.ee_info["bands"])}') - # return len(self.ee_info['bands']) - # else: - # return 1 # fall back to default if ee_object is not set - + if self.ee_object: + return len(self.ee_info['bands']) + else: + return 1 # fall back to default if ee_object is not set + + def generateBandName(self, band_no): + return self.ee_info['bands'][band_no - 1]['id'] + def xBlockSize(self): return self.wms.xBlockSize() diff --git a/utils.py b/utils.py index 1c68842..f3b6931 100644 --- a/utils.py +++ b/utils.py @@ -23,6 +23,8 @@ def get_ee_image_url(image): def update_ee_layer_properties(layer, eeObject, visParams, shown, opacity): + layer.dataProvider().set_ee_object(eeObject) + layer.setCustomProperty('ee-layer', True) if not (opacity is None):