在Leaflet中重绘图层时,如何保留旧图块直到加载每个新图块?

2024-01-10

我正在使用组合的tilelayer,我必须刷新它(使用.redraw()当前)每次添加新层或删除旧层时。我的实现没有技术问题,但是当切换图层时,会出现短暂的闪烁,因为旧的图块会立即被删除,但新的图块显然需要一些时间才能加载。

有什么方法可以保留这些旧瓷砖,直到加载替换的瓷砖为止,从而实现更平滑的过渡?

我考虑过使用临时层,并将新的图块加载到旧的图块之上,但这会导致大量额外的工作和加载,所以我希望传单具有更优雅的内置功能,例如delayRemoval选项或其他东西。


这是一个jsfiddle:http://jsfiddle.net/Q6586/ http://jsfiddle.net/Q6586/

如果您单击地图,它会重新绘制自身,立即删除旧图块,并且在加载新图块之前地图会短暂闪烁灰色。

我想摆脱那个闪光。我通过在旧图层之上创建一个新图层暂时解决了这个问题,但我觉得这是一个非常不优雅的解决方案。


您可以创建另一个图层,在重画时将其置于前面。

事件“load”会告诉您所有图块何时加载

map.on('click', function(e) {
    layer2.bringToFront();
    layer.on('load', function(e) {
        console.log('loaded');
        layer.bringToFront();
    });
    layer.redraw();
});

看看这个 JSFiddle:http://jsfiddle.net/FranceImage/5452r/ http://jsfiddle.net/FranceImage/5452r/

我命名了不同的图块,以便您可以看到。显然,您将为两个图块层使用相同的模板。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Leaflet中重绘图层时,如何保留旧图块直到加载每个新图块? 的相关文章

随机推荐

  • 卡尔曼滤波器总是在第一时间预测 0,0

    以下代码用于从下到上扫描图像 然而 卡尔曼滤波器的预测在第一次时总是显示0 0 这样 它就会从底部到 0 0 绘制一条线 如何使路径 卡尔曼滤波器 更接近实际路径 以下代码和图像已更新 import cv2 import matplotli
  • 布局API版本命名

    我不知道这是如何工作的 如果我创建了一个名为layout v11这适用于 v11 以上的所有 api 版本还是仅适用于 v11 第二个我可以将文件夹命名为layout v11 v14仅对 v11 和 v14 API 使用此布局 后缀指定资源
  • 从 xamarin 将文件上传到 Web api 服务器 - 请求处理时间太长

    我正在使用 HttpClient 将二进制文件发布到 Azure 托管的服务器 对于大小不太大的文件 该请求需要很长时间才能传递 有时 当客户端因超时而取消任务时 服务器会收到请求 我使用以下代码异步上传数据 public async Ta
  • Spirit X3可以与BOOST_FUSION_ADAPT_ADT一起使用吗?

    将我的代码从 QI 更改为 X3 并出现一些编译错误BOOST FUSION ADAPT ADT 我尝试了boost 1 64和1 67 它们都不起作用 我修改了精灵X3的例子rexpr min 添加 getter 和 setterstru
  • blogpost 的 rss feed 分页 url 是什么样的?

    我知道要访问 blogspot 博客的 rss feed 您需要访问 blog blogspot com feeds posts default 但是如何获取提要的第二页呢 我知道其他博客使用查询参数 paged 2 是否有类似的查询参数可
  • 如果资源已经存在,如何告诉 helm 不要创建/更改资源?

    我有一个秘密资源模板 安装后将为数据生成随机值 删除该图表 它没有删除秘密资源 因为它们保留下来 并稍后重新安装后 我遇到了问题 这导致它使用新生成的数据运行以前的秘密 这在我的情况下是不希望的 我试图找到我需要包含在模板中的 if 条件是
  • ASP.NET5 MVC6 的模型绑定问题

    我尝试将一些 JSON 数据以角度形式发布到我的 ASP NET5 MVC6 控制器操作 模型绑定器似乎不起作用 不知道我在这里缺少什么 我的 ASP 控制器 public class DefaultController Controlle
  • 有没有更好的方法为 numpy 数组标量分配新值?

    我正在对 numpy 数组中的标量值进行一些快速计算 正如它在文档 https docs scipy org doc numpy 1 13 0 user basics types html array scalars 使用数组标量的主要优点
  • 在ListBox中设置DrawMode删除水平滚动条

    我将列表框控件中的 DrawMode 设置为 OwnerDrawFixed 以便可以为某些项目着色 当项目太长而无法容纳列表框的水平空间时 不会出现水平滚动 怎样才能让滚动条出现呢 您应该在 OwnerDrawFixed 模式下设置列表框的
  • WPF dataGrid 多列的超级标题

    我想在WPF中为多列做标题DataGrid 我尝试使用标题模板 但它会显示一列的标题 下面的 XAML 我尝试过
  • MS Access 限制 X、Y

    是否可以模拟以下 MySQL 查询 SELECT FROM tbl ORDER BY date DESC LIMIT X 10 X为参数 在 MS Access 中 虽然访问 JET TOP关键字不直接提供OFFSET能力 我们可以巧妙地结
  • 为什么 NHibernate AutoFlush 检查如此昂贵?

    在实践中 我们发现默认的 NHibernate v2 0 2 1 FlushMode Auto 非常昂贵 查看 NHibernate 源代码表明 确定需要刷新的内容的算法依赖于循环遍历会话中所有实体的强力 并且这种情况发生在事务中运行的每个
  • 迁移时可以添加级联删除规则吗?

    在 FluentMigrator 迁移中 如果我定义关系 请说 Create Table RelatedTable WithColumn RelatedTableId AsGuid PrimaryKey WithColumn MainTab
  • 把 $$s 放在 `equation` 环境中:为什么 Latex 不抱怨?

    我很惊讶最近的问题中的 Latex 代码没有抛出任何错误 更令我惊讶的是进一步的调查 克劳利的解释 https stackoverflow com questions 2892982 formatting equations in late
  • 将整数转换为 std_logic

    假设你有一个循环 for i in 1 downto 0 loop for j in 1 downto 0 loop tS0 lt i 但我需要将整数 这是自然的 转换为 std logic tS0被声明为 std logic 我只做了一位
  • jQuery keydown 触发器不起作用

    我在文档加载结束时运行此脚本 function input keydown 该脚本位于 chrome 扩展中 该扩展在用户加载的每个页面上运行并且不起作用 即在 Twitter 网站上 但是 如果在 chrome javascript 控制
  • 如何使用javascript从父窗口获取子窗口url

    我正在启动一个带有窗口引用名称的子窗口 我想在每次更改时捕获子窗口的 URL var winRef var url http www google com if winRef null winRef closed winRef window
  • SecurityError:阻止具有来源的框架访问跨来源框架

    我正在加载一个在我的 HTML 页面中 并尝试使用 JavaScript 访问其中的元素 但是当我尝试执行代码时 出现以下错误 SecurityError 阻止源为 http www example com 的框架访问跨源框架 如何访问框架
  • 重置更改的值在其他 Ctrl (AngularJS) 中不起作用

    我对我的问题有点困惑 事实上 我有 2 个正在使用服务的视图和 ctrl 第一个视图包含一个表格列表 其中包含将从 WebAPI 加载的项目 该服务向服务器发出请求并按订单提供 另外 我正在使用另一个服务来传输另一个 Ctrl 中的所选项目
  • 在Leaflet中重绘图层时,如何保留旧图块直到加载每个新图块?

    我正在使用组合的tilelayer 我必须刷新它 使用 redraw 当前 每次添加新层或删除旧层时 我的实现没有技术问题 但是当切换图层时 会出现短暂的闪烁 因为旧的图块会立即被删除 但新的图块显然需要一些时间才能加载 有什么方法可以保留