Leaflet中使用Leaflet.fullscreen插件实现全屏效果

分手后的思念是犯贱 2023-10-01 12:26 112阅读 0赞

场景

Vue+Leaflet实现加载OSM显示地图:

Vue+Leaflet实现加载OSM显示地图_BADAO_LIUMANG_QIZHI的博客-CSDN博客

在上面的基础上,怎样实现地图全屏效果。

9d2c5cf43e5c4cd6b848a795a32c87bf.gif

注:

博客:
BADAO_LIUMANG_QIZHI的博客_霸道流氓气质_CSDN博客-C#,SpringBoot,架构之路领域博主
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

1、插件地址

https://github.com/Leaflet/Leaflet.fullscreen

2、下载源码,引入核心js文件,Leaflet.fullscreen.js,以及全屏按钮所需的照片资源

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBA6Zy46YGT5rWB5rCT5rCU6LSo_size_20_color_FFFFFF_t_70_g_se_x_16

修改样式css文件中图片的路径

watermark_type_d3F5LXplbmhlaQ_shadow_50_text_Q1NETiBA6Zy46YGT5rWB5rCT5rCU6LSo_size_20_color_FFFFFF_t_70_g_se_x_16 1

3、新建地图时添加全屏插件

  1. var map = L.map('map', {
  2. fullscreenControl: {
  3. pseudoFullscreen: false
  4. }
  5. }).setView([36.09, 120.35], 13);

4、完整示例代码

  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>leaflet实现全屏</title>
  6. <link rel="stylesheet" href="https://unpkg.com/leaflet@1.7.1/dist/leaflet.css" />
  7. <style>
  8. html,
  9. body,
  10. #map {
  11. padding: 0;
  12. margin: 0;
  13. width: 500px;
  14. height: 500px;
  15. overflow: hidden;
  16. }
  17. .leaflet-control-fullscreen a {
  18. background: #fff url(./icon/fullscreen.png) no-repeat 0 0;
  19. background-size: 26px 52px;
  20. }
  21. .leaflet-touch .leaflet-control-fullscreen a {
  22. background-position: 2px 2px;
  23. }
  24. .leaflet-fullscreen-on .leaflet-control-fullscreen a {
  25. background-position: 0 -26px;
  26. }
  27. .leaflet-touch.leaflet-fullscreen-on .leaflet-control-fullscreen a {
  28. background-position: 2px -24px;
  29. }
  30. /* Do not combine these two rules; IE will break. */
  31. .leaflet-container:-webkit-full-screen {
  32. width: 100% !important;
  33. height: 100% !important;
  34. }
  35. .leaflet-container.leaflet-fullscreen-on {
  36. width: 100% !important;
  37. height: 100% !important;
  38. }
  39. .leaflet-pseudo-fullscreen {
  40. position: fixed !important;
  41. width: 100% !important;
  42. height: 100% !important;
  43. top: 0 !important;
  44. left: 0 !important;
  45. z-index: 99999;
  46. }
  47. @media (-webkit-min-device-pixel-ratio:2),
  48. (min-resolution:192dpi) {
  49. .leaflet-control-fullscreen a {
  50. background-image: url(./icon/fullscreen@2x.png);
  51. }
  52. }
  53. </style>
  54. </head>
  55. <body>
  56. <div id="map"></div>
  57. <script type="text/javascript" src="https://unpkg.com/leaflet@1.7.1/dist/leaflet.js"></script>
  58. <script type="text/javascript" src="./js/Leaflet.fullscreen.js"></script>
  59. <script type="text/javascript">
  60. var map = L.map('map', {
  61. fullscreenControl: {
  62. pseudoFullscreen: false
  63. }
  64. }).setView([36.09, 120.35], 13);
  65. L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  66. attribution: ''
  67. }).addTo(map);
  68. </script>
  69. </body>
  70. </html>

发表评论

表情:
评论列表 (有 0 条评论,112人围观)

还没有评论,来说两句吧...

相关阅读