geoServer + leaflet 实现实时数据展示 以及数据回放

1.geoserver发布带有时间属性的图层

图层属性添加timestamp 类型字段

发布图层时 添加启用时间维度

 

 

2.leaflet 调用wms图层

this.ownLayer = this.nsnMap.newLayer({
   url: geoServerLayerUrl,
   layers: ownCarLayer,
   crs: L.CRS.EPSG4326,
   name: '自驾',
   type: 'wms_time',
   show: false,
   time: this.test,

});

其中 注意传递的time值 

由于我本人刚开始使用leaflet 找不到leaflet重新请求图层的方法

添加定时器

createTimer(value) {
   if (this.timer) {
      clearInterval(this.timer); // 在Vue实例销毁前,清除我们的定时器
   }
   let time = value * 3000;
   let app = this;
   this.timer = setInterval(() => {
      //更新时间 
       app.test = this.dataTest[a];
      //刷新图层  这里找不到leaflet的图层刷新方法 所以从新加载图层
      app.getAirPortRoadLayer();
      
   }, time);
},
getAirPortRoadLayer() {
   this.roadLayer.clearLayers();
   this.ownLayer = this.nsnMap.newLayer({
      url: geoServerLayerUrl,
      layers: ownCarLayer,
      crs: L.CRS.EPSG4326,
      name: '自驾',
      type: 'wms_time',
      show: false,
      time: this.test,

   });
   this.roadLayer.addLayer(this.ownLayer);
},

 这里需要保证geoserver的图层实行更新完成 。当然 可以使用socket 

注意:测试是geoserver会将时间转为CST 注意更改geoserver的时区

当然两个时区相差八小时 可以传递时间参数的时候 减去8小时传递  

3.数据回放

思路  1 获取要显示的时间段时间数组

2 循环数组刷新wms图层 实现数据回放

 

 

 

可参考 :https://docs.geoserver.org/stable/en/user/services/wms/index.html

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
Leaflet是一个基于Web的交互式地图库,Geoserver是一个开源的地理空间数据服务器,PostGIS是一个基于PostgreSQL的地理空间数据库扩展。 在使用LeafletGeoserver和PostGIS来构建Web GIS应用程序时,通常的工作流程如下: 1. 准备地理空间数据并将其加载到PostGIS数据库中。 2. 配置Geoserver以访问PostGIS数据库,并将数据发布为Web服务。 3. 在Leaflet中编写JavaScript代码,以访问Geoserver中发布的Web服务,并在Web页面上呈现地图。 具体步骤如下: 1. 准备地理空间数据并将其加载到PostGIS数据库中。 首先,需要安装PostgreSQL和PostGIS扩展。然后,在PostgreSQL数据库中创建一个新的数据库,并在该数据库中启用PostGIS扩展。接下来,使用QGIS等GIS软件来创建或导入地理空间数据,并将其保存为PostGIS支持的格式(例如Shapefile)。最后,使用PostgreSQL客户端工具(例如pgAdmin)将地理空间数据加载到PostGIS数据库中。 2. 配置Geoserver以访问PostGIS数据库,并将数据发布为Web服务。 打开Geoserver的Web界面,在数据存储中添加新的PostGIS数据库,并配置数据库连接参数。然后,在Geoserver中创建工作区和数据图层,并将其发布为Web服务。在此过程中,可以选择不同的发布格式(例如WMS、WFS等)和地图样式(例如SLD文件)。 3. 在Leaflet中编写JavaScript代码,以访问Geoserver中发布的Web服务,并在Web页面上呈现地图。 在HTML页面中引入Leaflet库和Leaflet插件(例如Leaflet.markercluster)。然后,在JavaScript代码中编写Leaflet地图对象,并使用Ajax请求访问Geoserver中发布的Web服务。最后,将地图对象添加到HTML页面中,以呈现交互式地图。 总之,LeafletGeoserver和PostGIS可以一起使用来构建功能强大的Web GIS应用程序,可以实现数据管理到地图呈现的全流程。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值