2024年最新基于Leaflet的VideoOverlay视频图层叠加实战_leftlet overlay(5),最新整理《大数据开发架构师面试题解析大全》

img
img
img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上大数据知识点,真正体系化!

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

需要这份系统化资料的朋友,可以戳这里获取

 attribution: 'Leaflet叠加视频图层',
 id: 'mapbox.satellite'

}).addTo(map);

var mapBounds = [[32, -130], [13, -100]];

map.fitBounds(mapBounds);


### 3、视频资源叠加


演示的视频资源,我们使用官方提供的mp4,如果您本地有mp4视频信息,也可以采用本地的资源。在展示的时候都是没有问题的。





![](https://img-blog.csdnimg.cn/img_convert/b4bc7da45cfac45763ce0c93fc3b43cf.png)




var topLeft = L.latLng([30, -129]);
var topRight = L.latLng([32, -100]);
var bottomRight = L.latLng([13, -97]);
var bottomLeft = L.latLng([13, -130]);
var corners = [topLeft, topRight, bottomRight, bottomLeft];

var layer = L.distortableVideoOverlay(“https://www.mapbox.com/bites/00188/patricia_nasa.mp4”, corners, {
muted: true,
opacity: 0.5
}).addTo(map);

function addMarker(point, text) {
L.marker(point).addTo(map).bindPopup(text);
}

addMarker(topLeft, “I’m topLeft 😃”);
addMarker(topRight, “I’m topRight :p”);
addMarker(bottomRight, “I’m bottomRight 😮”);
addMarker(bottomLeft, “I’m bottomLeft ❤️”);


通过distortableVideoOverlay方法,将视频源地址,视频的四个角的位置信息,视频图层的配置信息进行初始化。初始化设置视频图层的方式有两种,第一种是如上的代码方式,在创建时,将四个顶点角的位置传递给图层对应;另一个种方式是如下的方式:



overlay.setCorners(corners);


通过以上设置后,可以看到视频图层叠加地图图层的效果,同时设置了视频图层的透明度。视频图层可以随着地图图层进行放大和缩小。





![](https://img-blog.csdnimg.cn/img_convert/3ea8c422a85e8e89b46887ff02fff0b6.png)



最后输出一个动态的效果图如下图所示,





![](https://img-blog.csdnimg.cn/img_convert/1dd490d86fced39ed718ddaf6bc37053.gif)



完整的网页代码示例如下,地图底图采用的OSM的在线地图,仅供学习使用:



Leaflet叠加视频图层
<script src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"
    integrity="sha512-XQoYMqMTK8LvdxXYG3nZ448hOEQiglfqkJs1NOQV44cWnUrBc8PkAOcXy20w0vlaXaVUearIOBhiXZ5V3ynxwA=="
    crossorigin=""></script>
<script src="../lib/numeric.js" type="text/javascript"></script>
<script src="https://code.jquery.com/jquery-3.3.1.min.js" type="text/javascript"></script>
<script src="../dist/index.js" type="text/javascript" /></script>
<script>
    var map = L.map('map');

    L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoibWFwYm94IiwiYSI6ImNpejY4NXVycTA2emYycXBndHRqcmZ3N3gifQ.rJcFIG214AriISLbB6B5aw', {
        maxZoom: 18,
        attribution: 'Leaflet叠加视频图层',
        id: 'mapbox.satellite'
    }).addTo(map);

    var mapBounds = [[32, -130], [13, -100]];

    var topLeft = L.latLng([30, -129]);
    var topRight = L.latLng([32, -100]);
    var bottomRight = L.latLng([13, -97]);
    var bottomLeft = L.latLng([13, -130]);
    var corners = [topLeft, topRight, bottomRight, bottomLeft];

    map.fitBounds(mapBounds);

    var layer = L.distortableVideoOverlay("https://www.mapbox.com/bites/00188/patricia_nasa.mp4", corners, {
        muted: true,
        opacity: 0.5
    }).addTo(map);
    

    function addMarker(point, text) {
        L.marker(point).addTo(map).bindPopup(text);
    }

    addMarker(topLeft, "I'm topLeft :)");
    addMarker(topRight, "I'm topRight :p");
    addMarker(bottomRight, "I'm bottomRight :o");
    addMarker(bottomLeft, "I'm bottomLeft <3");
</script>
```

4、加载过程

简单分析以下视频图层的加载过程,通过在浏览器前端进行debug调试相关代码的方式进行。

在这里调用distortableVideoOverlay方法进行相关调用,然后进入到实例创建方法中:

在实例化方法中进行实例对象的创建,如下代码所示:

在这里可以看到,在传入了四个角的定义后,将其转换为bounds对象,

三、总结

img
img

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**

需要这份系统化资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值
>