В составе проекта GDAL есть полезные утилиты для работы с изображениями через консоль
- gdal_translate
- gdalwarp
Для своего проекта dbCartajs мне потребовались изображения для разных проекций. Изображения я хочу вывести на канвас вместе с векторными данными. Для этого цели из программы Orbitron я позаимствовал картинку с плоской картой Земли в небольшом разрешении.
Она отлично подходит для экспериментов, но как быть с другими проекциями - меркатор, сфера? Я нашел несколько картинок в разных проекциях, но все они оказались в разных цветовых сочетаниях и разрешениях, поэтому решил попробовать самостоятельно преобразовать исходную картинку с помощью утилит gdal, используя их описание и примеры.
Сначала, преобразуем исходную картинку в формат tiff - родной формат gdal - и задаем координаты привязки изображения.
gdal_translate -of Gtiff -co "TFW=YES" -a_ullr -180 90 180 -90 worldmap.png worldmap.tif
Для проекции Меркатора нужно ограничить размеры на полюсах (80-85 градусов).
gdal_translate -of Gtiff -projwin -180 84 180 -84 worldmap.tif worldmap-1.tif
Теперь формируем изображение в проекции Меркатора в формате tiff.
gdalwarp -s_srs EPSG:4326 -t_srs EPSG:3857 worldmap-1.tif worldmap-merc.tif
Браузер не работают с tiff, поэтому переводим его в jpeg.
gdal_translate -of JPEG worldmap-merc.tif worldmap-merc.jpg
Вот результат
Аналогично получаем картинки для других проекций, например ortho.
gdalwarp -s_srs EPSG:4326 -t_srs "+proj=ortho +lon_0=0 +lat_0=0" worldmap-1.tif worldmap-ortho.tif gdal_translate -of JPEG worldmap-ortho.tif worldmap-ortho.jpg