Openlayers中加载GeoServer中已发布的栅格(tif)数据

2 篇文章 0 订阅
2 篇文章 0 订阅

1.数据准备

        首先,接上篇,您已在GeoServer中发布了栅格(tif)数据,点击查看,在跳出的新页面地址栏里会有很长一段连接。如下所示:

http://192.168.252.227/geoserver/nurc/wms?service=WMS&version=1.1.0&request=GetMap&layers=nurc%3AImg_Sample&bbox=-130.85168%2C20.7052%2C-62.0054%2C54.1141&width=768&height=372&srs=EPSG%3A4326&styles=&

        其次,我们只需要记住地址中,问号(?)前面的内容和   layers=nurc:3AImg_Sample,即

http://192.168.252.227/geoserver/nurc/wms

layers=nurc:3AImg_Sample

2.OpenLayers中加载代码

        首先得有一个项目,具体参考我的其他文章,《Openlayers在vue3.2中的使用》,里面包括了完整的创建vue项目的流程,以及openlayers的安装。

        调用代码如下:

<template>
  <div :style="{ 'min-height': pageHeight }" id="mymap" class="imap">
  </div>
  <!-- 注意:div必需指定高度,否则加载不出来 -->
</template>
<script setup>
import { onMounted, ref } from 'vue'
import TileLayer from 'ol/layer/Tile'
import TileWMS  from 'ol/source/TileWMS'
import TileLayer from 'ol/layer/Tile'
import { ScaleLine, MousePosition } from 'ol/control' // openlayers控件
import { Map, View, Overlay } from 'ol'
   
onMounted(() => {
  initMap()
})
// 监听页面高度
const pageHeight = ref(window.innerHeight - 60 + 'px')
window.addEventListener('resize', () => {
  pageHeight.value = window.innerHeight - 60 + 'px'
})
const initMap = () => {
  const layer1 = new TileLayer({
    source: new TileWMS({
      url: 'http://192.168.252.227/geoserver/nurc/wms',
      params: {
        'LAYERS': 'nurc:3AImg_Sample',
      },
      serverType: 'geoserver',
    }),
  });

  // 添加地图控件
  const icontrols = [
    new ScaleLine(),
    new MousePosition({
      coordinateFormat: createStringXY(6), // 设置数据格式
      projection: 'EPSG:4326', // 设置空间参考系统为'EPSG:4326'
    }),
  ]
  // 创建一个地图
  map = new Map({
    layers: [layer1], // 加载的图层
    target: 'mymap', // 绑定div
    controls: icontrols, // 设置要显示的控件
    view: new View({
      center:[120,35], // 中心位置
      zoom: 12, // 缩放登级
      maxZoom: 18,
      projection: 'EPSG:4326' // 使用坐标系
    }),
  });
}
</script>
<style scoped>
.imap {
  min-width: 800px;
  height: 800px;
}
</style>

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 绘制色斑图在OpenLayers可以通过以下步骤完成: 1. 准备数据:首先,您需要准备用于绘制色斑图的数据。色斑图一般是根据地理坐标进行绘制,因此您可以使用矢量数据栅格数据。例如,您可以使用矢量数据表示不同地区的属性值,或使用栅格数据表示地区的光照强度等。 2. 创建地图:使用OpenLayers创建一个地图容器,可以指定地图的初始心点、缩放级别和投影方式等。 3. 添加图层:在地图上添加一个矢量图层或栅格图层来显示色斑图。您可以使用OpenLayers内置的图层类,如VectorLayer或ImageLayer。 4. 加载数据:将准备好的色斑图数据加载到图层。对于矢量图层,您可以使用OpenLayers提供的功能来解析和加载GeoJSON或WKT格式的数据。对于栅格图层,您可以将栅格数据加载为图片,并将其添加到图层上。 5. 定义样式:为了使色斑图在地图上有更好的视觉效果,您可以定义图层的样式。您可以使用OpenLayers提供的Style类来定义点、线或面的样式,包括颜色、大小、符号等。 6. 绘制图形:根据数据和样式,在图层上绘制色斑图。对于矢量图层,您可以创建要素对象并设置其几何属性和样式。对于栅格图层,您可以将加载栅格数据绘制为图片,并在图层上显示。 7. 添加交互:如果需要与色斑图进行交互,您可以添加事件监听器来响应用户的操作,如点击、移动或缩放等。 8. 渲染地图:最后,将地图渲染到指定的HTML容器,即可在浏览器看到绘制好的色斑图。 ### 回答2: 色斑图是一张基于地理空间数据的图形表示,它展示了某个特定区域的不同特征或属性的变化情况。OpenLayers是一个开放源代码的JavaScript库,用于在Web上创建动态地图应用程序。 要绘制色斑图,首先需要获取相关的地理空间数据。这可以通过使用OpenLayers库提供的功能,通过网络请求获取地理数据,包括矢量数据栅格数据等。可以通过调用OpenLayers的API,使用专门的函数来加载地理数据。 在获取到地理数据之后,需要对数据进行处理和分析,以便创建合适的色斑图。这可以通过使用OpenLayers提供的图层(Layer)和矢量(Vector)功能来实现。可以根据地理数据的属性值,在地图上绘制不同的要素,使用颜色来表示不同的属性。 在OpenLayers,可以自定义色斑图的样式和样式规则。可以根据数据的范围和特征,设置不同的颜色和样式。可以使用OpenLayers提供的样式函数、图层样式等功能来实现。 最后,通过将创建的色斑图图层添加到OpenLayers的地图,将其显示在Web页面上。可以通过OpenLayers提供的视图(View)功能,设置合适的心点、缩放级别和地图边界,以便更好地展示色斑图。 总结起来,要绘制色斑图,可以使用OpenLayers库提供的强大功能。通过获取地理数据、处理数据、设置样式和样式规则,最终将色斑图显示在Web页面上。OpenLayers提供了丰富的API和功能,使得绘制色斑图变得简单而灵活。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值