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对象中。

相关推荐
勾勾圈圈蛋蛋10 小时前
黑马Vue_day11:Vue3的watch,ref和reactive,vue2->vue3,defineOptions、Model
前端
AlloyTeamZy10 小时前
我发现,一个人做小游戏最难的,根本不是写代码
前端·人工智能·程序员
亲亲小宝宝鸭10 小时前
离谱架构系列——我在祖传代码里发现了【智子】
javascript
触底反弹10 小时前
🚀 20 行代码手写前端路由 + React Router 核心 API 一篇搞定!
前端·javascript·react.js
灏仟亿前端技术团队11 小时前
企业级 Agent 中台建设方案
前端
程序员黑豆11 小时前
鸿蒙应用开发:一次开发多端适配与自适应布局实战
前端·harmonyos
布兰妮甜11 小时前
Vue 状态管理选型:Pinia 完整实战,对比 Vuex,模块化持久化
前端·javascript·vue.js·pinia·vuex
神王宝宝 王者小学11 小时前
面向领域驱动架构的查询实现方式
前端·python·架构
小林ixn11 小时前
React Router 从入门到实战:一篇搞定路由配置、懒加载与嵌套路由
前端·react.js·前端框架
labixiong11 小时前
async/await 到底是不是 Generator 的语法糖?手写执行器,Babel 编译产物里藏着答案
前端·javascript·babel