16openlayers加载COG(云优化Geotiff)

1.前言

当在内网,没有GIS Server的时候,又想加载底图,一个办法就是使用COG。

2.实战

先用地图下载器,市面上有很多。下载一张geotiff。

将其使用GDAL命令处理成cog,命令如下:

bash 复制代码
gdal_translate z:\data\a.tif  z:\data\acog.tif -of COG  -co COMPRESS=JPEG

将其发布到nginx上,nginx的配置片段:

bash 复制代码
 location /tif {
            alias   "z:\\data\\";
            index  index.html index.htm;
  }

启动nginx,就可以用http://localhost/tif/acog.tif 访问了。

开始写前端代码:

main.js

bash 复制代码
import Map from 'ol/Map.js';
import TileLayer from 'ol/layer/WebGLTile.js';
import GeoTIFF from 'ol/source/GeoTIFF.js';

const source = new GeoTIFF({
  sources: [
    {
      url: 'http://localhost/tif/acog.tif',
    },
  ], 
  convertToRGB:true
});

引入GeoTIFF的source、TileLayer,创建一个GeoTIFF source的对象。

convertToRGB:true,将其他色彩空间的颜色转换成RGB,即所见和用地图工具直接打开的效果一致。

bash 复制代码
var tileLayer = new TileLayer({
      source: source,
    })

创建一个TileLayer的图层对象,将tileLayer使用Map的addLayer方法添加进map对象中。

相关推荐
阿蒙Amon17 小时前
TypeScript学习-第7章:泛型(Generic)
javascript·学习·typescript
睡美人的小仙女12717 小时前
Threejs加载环境贴图报错Bad File Format: bad initial token
开发语言·javascript·redis
fanruitian17 小时前
uniapp android开发 测试板本与发行版本
前端·javascript·uni-app
rayufo17 小时前
【工具】列出指定文件夹下所有的目录和文件
开发语言·前端·python
RANCE_atttackkk17 小时前
[Java]实现使用邮箱找回密码的功能
java·开发语言·前端·spring boot·intellij-idea·idea
摘星编程18 小时前
React Native + OpenHarmony:Timeline垂直时间轴
javascript·react native·react.js
2501_9445255419 小时前
Flutter for OpenHarmony 个人理财管理App实战 - 支出分析页面
android·开发语言·前端·javascript·flutter
jin12332219 小时前
React Native鸿蒙跨平台完成剧本杀组队详情页面,可以复用桌游、团建、赛事等各类组队详情页开发
javascript·react native·react.js·ecmascript·harmonyos
李白你好19 小时前
Burp Suite插件用于自动检测Web应用程序中的未授权访问漏洞
前端
经年未远20 小时前
vue3中实现耳机和扬声器切换方案
javascript·学习·vue