Skip to content

Commit c16afdd

Browse files
committed
Add geotiff express layer
1 parent fff3c62 commit c16afdd

File tree

2 files changed

+28
-2
lines changed

2 files changed

+28
-2
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import openlayers.express as ox
2+
3+
url = "https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/Q/WD/2020/7/S2A_36QWD_20200701_0_L2A/TCI.tif"
4+
5+
m = ox.GeoTIFFTileLayer(url=url, opacity=0.7).to_map()
6+
print(m.options)
7+
m.save()

src/openlayers/express.py

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,31 @@
22

33
from .abstracts import LayerLike
44
from .map import Map
5-
from .models.layers import VectorLayer, WebGLVectorLayer
6-
from .models.sources import VectorSource
5+
from .models.layers import VectorLayer, WebGLVectorLayer, WebGLTileLayer, TileLayer
6+
from .models.sources import VectorSource, GeoTIFFSource
77
from .models.view import View
88
from .styles import FlatStyle, default_style
99

1010

11+
class GeoTIFFTileLayer(LayerLike):
12+
"""Initialize a new `GeoTIFFTileLayer` instance"""
13+
14+
def __init__(self, url: str, opacity: float = 0.5, webgl: bool = True):
15+
tile_layer_callable = WebGLTileLayer if webgl else TileLayer
16+
source = GeoTIFFSource(sources=[dict(url=url)])
17+
self._model = tile_layer_callable(opacity=opacity, source=source)
18+
19+
@property
20+
def model(self) -> WebGLTileLayer | TileLayer:
21+
return self._model
22+
23+
def to_map(self, *args, **kwargs) -> Map:
24+
m = Map(*args, **kwargs)
25+
m.add_layer(self)
26+
m.add_call("setViewFromSource", self.model.id)
27+
return m
28+
29+
1130
class GeoJSONLayer(LayerLike):
1231
"""Initialize a new `GeoJSONLayer` instance
1332

0 commit comments

Comments
 (0)