十四、openlayers官网示例Cloud Optimized GeoTIFF (COG) from a Blob示例——加载blob格式GeoTIFF数据源

官网demo地址:

Cloud Optimized GeoTIFF (COG)

这篇讲的是加载blob格式的GeoTIFF数据源。

我们找一个tif文件下载下来

https://sentinel-cogs.s3.us-west-2.amazonaws.com/sentinel-s2-l2a-cogs/36/Q/WD/2020/7/S2A_36QWD_20200701_0_L2A/TCI.tif

放到项目里

然后使用网络请求获取文件并且转为blob格式就可以加载到地图上啦。

fetch("data/tcl.tif")
      .then((response) => response.blob())
      .then((blob) => {
        const source = new GeoTIFF({
          sources: [
            {
              blob: blob,
            },
          ],
        });
})
})

小细节:

source.getView().then的回调里还可以获取到View对象,还可以更改属性。

view: source.getView().then((viewConfig) => {
            console.log('viewConfig',viewConfig);
            viewConfig.showFullExtent = true;
            return viewConfig;
          }),

完整代码:

<template>
  <div class="box">
    <h1>Cloud Optimized GeoTIFF (COG) from a Blob</h1>
    <div id="map"></div>
    <div class="btn"></div>
  </div>
</template>

<script>
import GeoTIFF from "ol/source/GeoTIFF.js";
import Map from "ol/Map.js";
import TileLayer from "ol/layer/WebGLTile.js";
export default {
  name: "",
  components: {},
  data() {
    return {
      map: null,
    };
  },
  computed: {},
  created() {},
  mounted() {
    fetch("data/tcl.tif")
      .then((response) => response.blob())
      .then((blob) => {
        const source = new GeoTIFF({
          sources: [
            {
              blob: blob,
            },
          ],
        });

        const map = new Map({
          target: "map",
          layers: [
            new TileLayer({
              source: source,
            }),
          ],
          view: source.getView().then((viewConfig) => {
            console.log('viewConfig',viewConfig);
            viewConfig.showFullExtent = true;
            return viewConfig;
          }),
        });
      });
  },
  methods: {},
};
</script>

<style lang="scss" scoped>
#map {
  width: 100%;
  height: 500px;
}
.box {
  height: 100%;
}
</style>

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
Vue3 Geotiff是一种在Vue3和OpenLayers联合技术栈下加载和显示Geotiff文件的方法。 Geotiff是一种包含地理空间信息的图像文件格式。通过使用Vue3和OpenLayers,您可以轻松地加载Geotiff文件,并在地图上显示它们。 要加载和显示Geotiff文件,您可以使用OpenLayers的ol/source/GeoTIFF模块。该模块提供了加载和处理Geotiff文件的功能。您可以通过以下步骤实现这一目标: 1. 在Vue3项目中安装OpenLayers依赖包。您可以使用npm或yarn命令执行此操作。 2. 在Vue3组件中导入OpenLayers的ol/source/GeoTIFF模块。 3. 创建一个GeoTIFF源对象,并指定Geotiff文件的URL。您可以使用GeoTIFF源对象的load()方法加载Geotiff文件。 4. 创建一个OpenLayers的图层对象,并将GeoTIFF源对象作为图层的源。 5. 将图层对象添加到地图中。 以下是一个示例代码,演示了如何在Vue3中加载和显示Geotiff文件: ```javascript <template> <div id="map-container"> <div id="map"></div> </div> </template> <script> import GeoTIFF from 'ol/source/GeoTIFF'; export default { mounted() { const geotiffSource = new GeoTIFF({ url: 'path/to/geotiff/file.tiff', }); const layer = new ol.layer.Image({ source: geotiffSource, }); const map = new ol.Map({ target: 'map', layers: [layer], view: new ol.View({ center: [0, 0], zoom: 1, }), }); }, }; </script> <style> #map-container { width: 100%; height: 400px; } #map { width: 100%; height: 100%; } </style> ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值