zxdawn
November 7, 2021, 9:40pm
1
When setting the extent of WMTS tiles, we should convert degree to pass them as xlim
or ylim
.
Here’s the example:
import geoviews as gv
from pyproj import Proj, transform
inProj = Proj(init='epsg:4326')
outProj = Proj(init='epsg:3857')
arctic_lon1, arctic_lat1 = transform(inProj,outProj,-180,60)
arctic_lon2, arctic_lat2 = transform(inProj,outProj,180,90)
gv.tile_sources.OSM().opts(xlim=(arctic_lon1, arctic_lon2), ylim=(arctic_lat1, arctic_lat2))
However, some white stripes exist on the top. Is it possible to crop correctly?
zxdawn:
import geoviews as gv
from pyproj import Proj, transform
inProj = Proj(init='epsg:4326')
outProj = Proj(init='epsg:3857')
arctic_lon1, arctic_lat1 = transform(inProj,outProj,-180,60)
arctic_lon2, arctic_lat2 = transform(inProj,outProj,180,90)
gv.tile_sources.OSM().opts(xlim=(arctic_lon1, arctic_lon2), ylim=(arctic_lat1, arctic_lat2))
I think you can just change the width/height aspect
gv.Points(([-88], [40])).opts(projection=ccrs.GOOGLE_MERCATOR, global_extent=True, width=800, height=400) * gv.feature.coastline() * gv.tile_sources.OSM()
Or aspect=2
zxdawn
November 8, 2021, 5:33pm
3
Thanks, but the default view I want is the Arctic region (60<lat<90, -180<lon<180).
gv.tile_sources.OSM().opts(xlim=(arctic_lon1, arctic_lon2), ylim=(arctic_lat1, arctic_lat2), aspect=360/30)
1 Like
In your original example the map is being limited correctly to 90°. You’re getting white space because there are no map tiles above ~85°. The web mercator coordinate system doesn’t extend beyond 85°.
Area of use: World between 85.06°S and 85.06°N.
4 Likes