CEM How to generate tiles for leaflet basemap
From SCECpedia
Contents
create new basemap for leaflet
goal: to create leaflet basemap overlay layer
georeference a png image file
Install QGIS from qgis.org
Run QGIS
Start a new project
first icon with a blank paper
load a map
Select XYZ Tiles and OpenStreetMap and zoom to region of interest
Load a png that needs to be geo-referenced
select Layer -> georeferencer
select open-raster and load the png file
Mark several map coordinates
select 'From Map Canvas' and mark the matching location at the background map(remember to click OK)
There will be a matching marker on the background map and georeferencer map
Georeference and Export a tif file
select georeferencing and exit
generate image tile set
Download gdal2tiles
pip install gdal2tiles
(also available from conda)
Depending on the resolution of the original png file and also the area that it covers, zoom level does not have to be higher than 10. (higher zoom equals to more required memory)
gdal2tiles.py -e --zoom=5-10 georeference_image.tif output_folder
add to leaflet's basemap collection
Move generated data tile folder to the explorer's web data location
and add the layer information to explorer's basemap declaration.
var lyr = L.tileLayer('./data/cybershake22_12/{z}/{x}/{y}.png', {tms: 1, opacity: 1, attribution:scecAttribution, minZoom: 5, maxZoom: 13});
var lyr2 = L.tileLayer('./data/vs30_2022_v2/{z}/{x}/{y}.png', {tms: 1, opacity: 1, attribution:scecAttribution, minZoom: 5, maxZoom: 10});
baseLayers = {
"esri topo" : esri_topographic,
"esri imagery" : esri_imagery,
"jawg light" : jawg_light,
"jawg dark" : jawg_dark,
"osm streets relief" : osm_streets_relief,
"otm topo": otm_topographic,
"osm street" : osm_street,
"esri terrain": esri_terrain,
"cybershake":lyr,
"v3 etree":lyr2
};