首页 > 其他分享 >leaflet动态更改wms瓦片请求参数

leaflet动态更改wms瓦片请求参数

时间:2024-06-22 22:10:21浏览次数:10  
标签:tiles right bottom wms top bound leaflet 瓦片

需求

https://leafletjs.cn/reference.html#tilelayer-wms

官方文档这里说了可以添加自定义参数,但是这里的写法,值是固定的

如果我们需要添加的参数的值是动态变化的,那么,直接写在options的方式固然是行不通的

解决办法

重写getTileUrl方法,可以选择继承TilelayerWMS重写一个类,也可以针对指定图层做修改

针对指定图层做修改做演示

a.根据地图状态动态修改zoom参数值示例

    const tiles = L.tileLayer.wms("http://localhost:9090/geoserver/ne/wms", {
      layers: "ne:countries",
      tileSize: map.getSize(),
    });
    tiles.getTileUrl = function (croods) {
      let { x, y, z } = croods;
      url = L.TileLayerWMS.prototype.getTileUrl.call(this, coords);
      return url + "&zoom=" + z;
    };
    tiles.addTo(map);

这样就可以根据地图状态动态修改zoom值了

b.非标准wms图层服务,动态传top/bottom/left/right/width/height值示例
有些wms服务,要求传top/bottom/left/right而不是传bbox,这时就需要动态传这些值了

const tiles = L.tileLayer.wms("http://localhost:9090/geoserver/ne/wms", {
        test: "123",
});
tiles.getTileUrl = function (coords) {
  let { x: width, y: height } = this.getTileSize();
  let bound = this._tileCoordsToBounds(coords),
    top = bound.getNorth(),
    bottom = bound.getSouth(),
    left = bound.getEast(),
    right = bound.getWest(),
    options = {
      ...this.options,
      top,
      bottom,
      left,
      right,
      width,
      height,
    };
  return this._url + hnsdk.Util.getParamString(options, this._url);
};
tiles.addTo(map);

可以发现,每张瓦片请求的top/bottom/left/right参数都是不同的

这种方式也可以为后续有些图层服务对单张瓦片请求做加密的话,使用leaflet实现的原理方案大抵相同。

标签:tiles,right,bottom,wms,top,bound,leaflet,瓦片
From: https://www.cnblogs.com/echohye/p/18262797

相关文章

  • 地图瓦片服务器搭建
    文章目录一、OpenStreetMap-Tile-Server二、OpenStreetMap地图资源下载三、加载地图资源①移动本地osm.pbf文件到docker容器中②解析osm.pbf文件③创建Postgre账号:renderer,表结构创建,地图数据导入数据库④下载地图公共资源,这里有点坑,这里详细说一下四、启动瓦片服务器五......
  • WMS为企业解决了哪些问题?
    WMS(仓库管理系统)对企业解决了许多供应链和物流方面的问题,包括但不限于:(1):库存管理:——WMS可以帮助企业实时跟踪和管理库存,包括库存量、位置和状态等信息,有助于减少库存损耗和避免库存过剩。(2):订单处理:——WMS能够优化订单处理流程,包括接收订单、拣选产品、包装和发......
  • Windows11系统WmsToastApi.dll文件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个WmsToastApi.dll文件(挑选合适的版本文件)把......
  • Windows11系统WmsConfigTasks.dll文件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个WmsConfigTasks.dll文件(挑选合适的版本文件......
  • Windows11系统WmsProxyStub.dll文件丢失问题
    其实很多用户玩单机游戏或者安装软件的时候就出现过这种问题,如果是新手第一时间会认为是软件或游戏出错了,其实并不是这样,其主要原因就是你电脑系统的该dll文件丢失了或没有安装一些系统软件平台所需要的动态链接库,这时你可以下载这个WmsProxyStub.dll文件(挑选合适的版本文件)......
  • 海外仓平台系统选择指南:中小海外仓如何选到经济实惠的WMS系统
    对于中小海外仓来说,选择一套性价比高、功能又比较齐全的系统还是很关键的,这直接关系到海外仓的运转效率和盈利能力。今天我们就来探讨一下,针对中小海外仓这个群体,要怎么才能选到经济实惠又功能齐全的wms系统。1、性价比——中小海外仓选择系统的优选标准对于中小型海外仓来......
  • Android14 WMS-窗口添加流程(二)-Server端
    Android14WMS-窗口添加流程(一)-Client端-CSDN博客本文接着上文"Android14WMS-窗口添加流程(一)-Client端"往下讲。也就是WindowManagerService#addWindow流程。目录一.WindowManagerService#addWindow标志1:mPolicy.checkAddPermission标志2:getDisplayContentOrCreate......
  • 虚拟海外仓用什么系统最好?5个步骤帮你选出适合自己仓库的WMS系统
    面对国际市场越来越大的仓储需求,虚拟海外仓的受众还是非常广泛的。不过很多经营虚拟海外仓的企业往往都会陷入管理混乱,低效的怪圈。要想突破这个经营的瓶颈,快速发展企业,选择一个适合自己的海外仓WMS系统是个不错的选择。1.虚拟海外仓在管理上的核心需求是什么对于虚拟海外仓......
  • vue leaflet 引入热力图
    实现效果:  安装://通过npm安装heatmap.jsnpminstall--saveheatmap.jsimport"heatmap.js";importHeatmapOverlayfrom"@/assets/Leaflet/leaflet-heatmap.js";代码://配置letcfg={radius:0.05,//半径maxOp......
  • Leaflet地图
    Leaflet是一个为建设移动设备友好的互动地图,而开发的现代的、开源的JavaScript库。Leaflet设计坚持简便、高性能和可用性好的思想,在所有主要桌面和移动平台能高效运作,在现代浏览器上会利用HTML5和CSS3的优势,同时也支持旧的浏览器访问。1、安装配置在官网中下载上方......