目录

官方解析

博主例子


官方解析

这里,官方首先告诉我们,当<video>这个标签还没出现的时候,在web上展示视频是很艰巨的。现在有了这个标签,只需要如下代码就能在web页面上展示视频:

<video width="500" controls><source src="https://www.mapbox.com/bites/00188/patricia_nasa.webm" type="video/webm"><source src="https://www.mapbox.com/bites/00188/patricia_nasa.mp4" type="video/mp4">
</video>

想在Leaflet上放视频,先得加载一个地图

var map = L.map('map').setView([37.8, -96], 4);L.tileLayer('https://api.tiles.mapbox.com/v4/{id}/{z}/{x}/{y}.png?access_token=' + mapboxAccessToken, {id: 'mapbox.satellite',attribution: ...
}).addTo(map);

随后画一个放视频的矩形,放到地图上

var bounds = L.latLngBounds([[ 32, -130], [ 13, -100]]);
L.rectangle(bounds).addTo(map);
map.fitBounds(bounds);

使用videoOverlay函数把视频放到刚刚画的矩形上!

var videoUrls = ['https://www.mapbox.com/bites/00188/patricia_nasa.webm','https://www.mapbox.com/bites/00188/patricia_nasa.mp4'
];var bounds = L.latLngBounds([[ 32, -130], [ 13, -100]]);
var videoOverlay = L.videoOverlay( videoUrls, bounds, {opacity: 0.8
}).addTo(map);

加一个播放和停止按钮

videoOverlay并没有提供play()和pause()的API。

需要调用getElement(),然后才能调用play()以及pause()

videoOverlay.on('load', function () {var MyPauseControl = L.Control.extend({onAdd: function() {var button = L.DomUtil.create('button');button.innerHTML = '⏸';L.DomEvent.on(button, 'click', function () {videoOverlay.getElement().pause();});return button;}});var MyPlayControl = L.Control.extend({onAdd: function() {var button = L.DomUtil.create('button');button.innerHTML = '⏵';L.DomEvent.on(button, 'click', function () {videoOverlay.getElement().play();});return button;}});var pauseControl = (new MyPauseControl()).addTo(map);var playControl = (new MyPlayControl()).addTo(map);
});

这样就增加了播放和暂停按钮了。

博主例子

下面在自定义地图上播放视频!

程序运行截图如下:

源码如下:

<!DOCTYPE html>
<html>
<head><title>video</title><meta charset="utf-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0"><link rel="stylesheet" href="leaflet.css" /><script src="leaflet.js"></script>        <script src="leaflet-tilelayer-wmts-src.js"></script><style>html, body {height: 100%;margin: 0;}#map {width: 100%;height: 100%;}</style></head>
<body>
<div id='map'></div>
<script type="text/javascript">var ign = new L.TileLayer.WMTS( "http://XXX.XXX.XXX.XXX:8080/geoserver/gwc/service/wmts" ,{layer: 'GG_9:gg_9',tilematrixset: "EPSG:900913",Format : 'image/png',TileMatrix: 'EPSG:900913:8'});var map = L.map('map', {minZoom: 4,maxZoom: 7}).setView([32, 118], 7);L.control.scale({'position':'bottomleft','metric':true,'imperial':false}).addTo(map);map.addLayer(ign);map.invalidateSize(true);//添加的数据/*var popup = L.popup();function onMapClick(e){popup.setLatLng(e.latlng).setContent(e.latlng.toString()).openOn(map);}map.on('click', onMapClick);*/bounds = L.latLngBounds([[35.083, 111.467], [31.419, 120.344]]);L.rectangle(bounds).addTo(map);map.fitBounds(bounds);var videoUrls = ['https://vfx.mtime.cn/Video/2019/01/15/mp4/190115161611510728_480.mp4'];var overlay = L.videoOverlay(videoUrls, bounds, {opacity: 0.8,interactive: false,autoplay: true});map.addLayer(overlay);overlay.on('load', function () {var MyPauseControl = L.Control.extend({onAdd: function() {var button = L.DomUtil.create('button');button.innerHTML = '暂停';L.DomEvent.on(button, 'click', function () {overlay.getElement().pause();});return button;}});var MyPlayControl = L.Control.extend({onAdd: function() {var button = L.DomUtil.create('button');button.innerHTML = '播放';L.DomEvent.on(button, 'click', function () {overlay.getElement().play();});return button;}});var pauseControl = (new MyPauseControl()).addTo(map);var playControl = (new MyPlayControl()).addTo(map);});//添加的数据</script></body>
</html>

Leaflet文档阅读笔记- Showing video files解析相关推荐

  1. Leaflet文档阅读笔记-Quick Start Guide笔记

    目录 网络加载JS和CSS 初始化地图 在地图上做标记 在地图上点击事件获得坐标 个人对这篇文档的体会 网络加载JS和CSS 先要加载css,然后在加载js <link rel="st ...

  2. Leaflet文档阅读笔记-Extending Leaflet: Handlers and Controls笔记

    目录 官方解析 博主栗子 官方解析 Leaflet 1.0中出现了处理者这个新概念,处理浏览器里的dom事件单击,双击,地图滑动及map状态的改变. 当处理者启动时调用addHooks()函数,未启动 ...

  3. Leaflet文档阅读笔记-Zoom levels笔记

    目录 官方解析 博主例子 官方解析 把地图放缩锁定到0级 var map = L.map('map', {minZoom: 0,maxZoom: 0 });var cartodbAttribution ...

  4. Leaflet文档阅读笔记-Using GeoJSON with Leaflet笔记

    目录 官方解析 博主例子 官方解析 个人觉得这官方教程给得是相当的好,因为功能非常的强大,在此记录下,方便以后使用,以后肯定会经常用到! 此节将会学到从GeoJson对象中创建且调用map vecto ...

  5. Leaflet文档阅读笔记-Markers With Custom Icons笔记

    目录 官方解析 博主例子 官方解析 这个内容主要是把自定义图片,放到地图上,并且还可以增加阴影图片,以及点击图片后的弹出事件. 官方是准备了下面这4张图片: 使用下面这种方式可以单独设置,自定义图标 ...

  6. Leaflet文档阅读笔记-Leaflet on Mobile笔记

    目录 CSS和HTML改如何设置 定位功能 CSS和HTML改如何设置 如下的设置: body {padding: 0;margin: 0; } html, body, #map {height: 1 ...

  7. Qt文档阅读笔记-Widgets Tutorial官方解析及实例

    目录 官方解析 博主栗子 官方解析 QWiget通常作为其他窗口的容器,可以使用QWidget到达最小代价定义自定义控件(经验:通常可以采用子类QLabel做成自定义控件) 可以通过构建他的父类对象来 ...

  8. BootStrapStudio文档阅读笔记-Getting Started Guide解析

    The Application Window BootStrapStudio这款软件的界面分为三个部分,最左边的面板是各种组件(Component),中间是Overview面板. 可以从Compone ...

  9. Qt文档阅读笔记-void QObject::deleteLater()解析

    [slot] void QObject::deleteLater() 这个对象的进行计划删除. 当对这个对象的操作结束回到事件循环时,这个对象将会被删除. 如果这个函数不在事件循环中调用,一旦事件循环 ...

最新文章

  1. linux常用快捷命令(不断更新)
  2. Eclipse 安装插件(aptana、svn 、git、Java EE、JSHint)
  3. linux目录和文件管理命令
  4. 【学术相关】IEEE TBD, 这个Trans刚被SCI收录,预计首个IF4
  5. swift4.2 - 一个自定义view弹框
  6. JMeter篇01:JMeter在Mac下的安装
  7. 每次启动项目的服务,电脑竟然乖乖的帮我打开了浏览器,100行源码揭秘!
  8. mysql 导入文件夹_MySQL-导入与导出
  9. 软件测试工程师-HTML
  10. 基于JAVA+SpringBoot+Mybatis+MYSQL的在线购物商城系统
  11. kali Linux 没有ip解决办法
  12. jquery获得select option的值 和对select option的操作
  13. Swift笔记(一):可选类型、语法基础
  14. android nfc读写cpu卡,react-native调用nfc读写cpu卡、m1卡-android篇
  15. VALSE 4月12日 下午 第一会场 深度学习模型设计 会议记录
  16. linux用户管理(1)----创建用户(adduser和useradd)和删除用户(userdel)
  17. 贝尔曼方程怎么解_贝尔曼方程
  18. 肝移植笔记2:论文阅读-肝移植辅助决策研究
  19. ISP算法:gamma矫正
  20. 苹果屏幕录制怎么没有声音_怎么录制屏幕?有哪些好用的录制屏幕软件

热门文章

  1. 一家永不上市,利润共享的行业龙头,依旧还是那个务实创新的少年
  2. 【转载】挖坑浪费时间
  3. 做公益的飞秋(FeiQ)程序代码
  4. 01数据库、DBMS和SQL
  5. Airbnb 宣布弃用 React Native!
  6. f12获取网页文本_jmeter获取web页面文本内容的两种方式
  7. 监督学习 | SVM 之线性支持向量机原理
  8. 新鲜出炉 | 临床基因组学数据分析实战开课啦!!!
  9. 硬核干货:如果样本量不一一样多,或者不是一一对应关系,如何做差异?相关?...
  10. 他为华裔写了几封信......