一.Leaflet入门

这篇具有很好参考价值的文章主要介绍了一.Leaflet入门。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

  为什么第一个 GIS 前端开发框架选择 Leaflet。

  Leaflet 是一款轻量级,用于移动友好交互式地图的JavaScript库。轻量级的意思就是代码总大小比较小。Leaflet利用HTML5和CSS3在现代浏览器上的优势,同时也可以在旧浏览器上访问。它可以通过大量插件进行扩展,具有漂亮的、易于使用的、文档丰富的API,使用上也比较简单。

1. 开发前的准备

1.1 leaflet 的整体架构

  Leaflet 采用面向对象的程序设计方法,将抽象事物具体化为类,提供核心类Map作为地图容器,基于 Map 与Layer 扩展的各个功能类实现地图数据、覆盖物的可视化,配合事件机制实现地图交互等功能。Leaflet 的体系架构如图所示。

leaflet,leaflet学习之路,javascript,前端,开发语言

  Leaflet 把整个地图看成一个容器,在地图容器(Map)中装载地图数据图层、地图覆盖物图层等,通过图层叠加方式渲染显示地图数据;除此之外容器中还有一些特别的层和控件(如地图控件等),以及绑定在 Map 和 Layer 等可视化功能类的一系列事件,实现地图管理与交互功能。底层为Leaflet支持的数据源,包括各类格式的瓦片数据、矢量数据及覆盖物数据,由 Layer 扩展的相关图层负责渲染显示。

2.2 Leaflet 的 API

  以下是 Leaflet 的 官方文档,这里只涉及到其核心的 API,并没有相关插件的使用方式。

leaflet,leaflet学习之路,javascript,前端,开发语言

  英文的阅读起来并不是十分的友好,但是我在前文中也提到了,Leaflet 的生态社区做得很好,尤其是最近几年已经推出了官方中文文档,在这里可以更好的学习 Leaflet的相关知识。

leaflet,leaflet学习之路,javascript,前端,开发语言

  由于我个人能力有限,并可能完全介绍到所有的 API 的功能,我自己也是属于边学边进步的过程中,本章中难免有一些错误之处,希望大家如果发现请及时指正。

2. 配置开发环境

2.1 引入方式

  Leaflet 提供了四种常用的引入方式,分别是使用 Leaflet 的托管版本、使用下载版的 Leaflet 、使用 JavaScript 包管理器和从源代码中构建 Leaflet。

  使用 Leaflet 的托管版本

  最新的 Leaflet 稳定版已在多个 CDN 上提供。使用时,直接将其放在 HTML 代码的开头即可:

<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.3/dist/leaflet.css" integrity="sha256-kLaT2GOSpHechhsozzB+flnD+zUyjE2LlfWPgU04xyI=" crossorigin="" />
<script src="https://unpkg.com/leaflet@1.9.3/dist/leaflet.js" integrity="sha256-WBkoXOwTeyKclOHuWtc+i2uENFpDZ9YPdf5Hf+D7ewM=" crossorigin=""></script>

  使用下载版的 Leaflet

  进入之前提到的官网,找到可以自行下载到本地文件的 Leaflet ,当然这里推荐下载第一版本。目前我在编写时最新稳定的版本为1.9.3

leaflet,leaflet学习之路,javascript,前端,开发语言

  在从上述链接下载到本地的文件中,将看到以下文件:

  • leaflet.js - 这是压缩后的 Leaflet JavaScript 代码。
  • leaflet-src.js - 这是可读的,最小的 Leaflet JavaScript,有时对调试很有帮助。(该文件完整的哈希值为 sha256-V8Wsw6bWrfTsX9YUzIjKtnIoiUhBdulszoxf177/XjU=)
  • leaflet.css - 这是 Leaflet 的样式文件。
  • images - 这是一个文件夹,其中包含 leaflet.css 引用的图像。 它必须与 leaflet.css 位于同一目录中。

  将下载的文件解压到您网站的目录中,并将其添加到 HTML 代码的开头:

<link rel="stylesheet" href="/path/to/leaflet.css" /> 
<script src="/path/to/leaflet.js"></script>

  使用JavaScript包管理器

  如果使用 npm 软件包管理器,则可以通过运行以下命令安装 Leaflet:

npm install leaflet

  作为一名新手这里推荐使用第一种和第二种方式进行引用,至于最后一种方式则是按照下图所示的方法进行引用。

leaflet,leaflet学习之路,javascript,前端,开发语言

2.2 目录结构

  目前并有涉及到后端的一些数据的交互,所以目录的结构就按照前端开发的习惯进行构建。

  • libs:用来存放一些程序所使用的框架,Leaflet 就存放于此目录下。

  • public:存放静态的一些资源诸如图片、图标、视频等。

  • js:通过编写符合 Leaflet 的规则所形成的js文件。

  大致的目录结构如下,当然你也可以按照你个人的喜好进行构建,只要符合你的习惯即可。

leaflet,leaflet学习之路,javascript,前端,开发语言

2.3 编辑器的选择

  前端的编辑器有许多种,选择哪一种完全是出于个人的使用习惯,好用的编辑器有很多如 VS Code、WebStrom等等,这里我选择的是使用VS Code作为编辑器编写前端的代码。个人感觉用起来很方便主要是提供了丰富的插件。

leaflet,leaflet学习之路,javascript,前端,开发语言

2.4 Leaflet 入门 demo

  经过以上的铺垫终于可以开始制作第一个入门级别的demo,本次demo的目标很简单就是要实现将地图显示在网页中。这里选择使用国内一个较新的地图——星图地球,这个地图背靠中国科学院空天信息创新研究院,所以地图的质量还是很可以的。


  第一步:在目录结构的主文件下新建一个 HTML 文件命名为 index.html 通过2.1中的第二种方式将 Leaflet引入到网页中。

<!-- 引入 Leaflet 样式  -->
<link rel="stylesheet" href="libs/leaflet/leaflet.css" />
<!-- 引入 Leaflet 脚本  -->
<script src="libs/leaflet//leaflet.js"></script>

  第二步:在 body 中创建一个 div 作为地图的容器。需要注意的是,div 元素的 id 可以自定义;确保 div 元素有一个高度,即必须为地图容器设置高度值,否则 Leaflet 不会对地图容器高度进行处理。

<div id="map" style="height: 600px;"></div>

  第三步:在script标签添加语句,加载设置地图。编写 JavaScript代码,创建并初始化地图对象,加载星图地球的影像地图。基于上一步骤新建的 div,创建一个地图容器对象与之绑定,并设置地图中心点与缩放级别,代码如下:

const map = L.map('map').setView([32.40, 119.40], 18);//我所在城市的经纬度

  需要注意的是,默认情况下(因为我们在创建地图实例时没有传递任何选项),地图上的所有鼠标和触摸交互都处于启用状态,并且具有缩放和属性控制;setView()方法用于设置地图中心点与缩放级别,地图中心点参数为[y,x]。


  第四步:添加一个L.TileLayer图层对象来创建瓦片图层,通过URL参数设置服务请求地址及可选参数等。最后,通过addTo()方法将瓦片图层添加到地图容器中,代码如下:

 //加载星图地球影像图层
const imgLayer = L.tileLayer('https://tiles1.geovisearth.com/base/v1/img/{z}/{x}/{y}?format=webp&tmsIds=w&token=29fbc555c8331c640b6c804dce954c4ad2bbf97a96a1c72b510344f4d87ae7e2', {
            maxZoom: 18
        }).addTo(map);
       //加载星图地球影像注记图层
const annoLayer = L.tileLayer('https://tiles1.geovisearth.com/base/v1/cia/{z}/{x}/{y}?format=png&tmsIds=w&token=29fbc555c8331c640b6c804dce954c4ad2bbf97a96a1c72b510344f4d87ae7e2',{
            maxZoom: 18
        }).addTo(map);

  需要注意的是,L.TileLayer 是一个通用的瓦片图层,可以加载瓦片地图,还可以通过扩展加载矢量地图。必选参数项 URL 为关键参数,用于设置地图数据服务地址。我所用的星图地球就是需要注册然后申请KEY才可以正常使用。(请求示例https://tiles1.geovisearth.com/base/v1/cia/{z}/{x}/{y}?format=png&tmsIds=w&token=用户的token)
leaflet,leaflet学习之路,javascript,前端,开发语言

  这样就可以快速地构建出一个网页地图了,至于我的代码中为何将不采用 var 关键字而使用 const 关键字申明变量,这是因为在ES6之后有了更好的 let 去替代,而我这里的变量不涉及到后续的修改故申明为常量,是我个人使用习惯的问题,将变量都申明为常量后续如果需要修改时再将其修改为用 let 申明的变量,大可以使用 var 或者 let 去申明(最好用 let)。关于变量的内容我也会在 JavaScript 学习中做出相应的解释。最后我都会将写过的demo上传到我的Gitee中。文章来源地址https://www.toymoban.com/news/detail-822764.html

到了这里,关于一.Leaflet入门的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Leaflet 加载高德地图

    在前面的文章中,我们学习了如何使用 Leaflet 创建一个基本的地图。在本文中,我们将学习如何在 Leaflet 中加载高德地图,并结合实际应用构建地图点击事件。 高德地图是一款由高德软件提供的数字地图服务,在国内使用较为广泛。高德地图提供了丰富的地图数据和 API 接口

    2024年03月25日
    浏览(46)
  • 【leaflet】1. 初见

    需求 要做游戏地图了,看到大量产品都使用的leaflet,所以开始学习这个。 开发环境 版本号 描述 文章日期 2023-11-09 操作系统 Win10 - 22H2 19045.3570 leaflet 1.9.4 leaflet 是一个 开源 的 JavaScript 库,用于创建 交互式 的地图应用程序。 它提供了一系列的工具和类,用于实现地图的基本

    2024年02月03日
    浏览(42)
  • 实现地图遮罩 leaflet

    在地图中加载的底图是瓦片服务(固定大小的规则矩形),底图的范围很大,铺满了整个div,但是我们的感兴趣的部门可能只是其中一部分,如何在整个屏幕中突出感兴趣的部分-- 地图遮罩 (遮挡图像中不感兴趣的部分)。最常见的用处是突出行政区内部区域。 图1 湖南省遮

    2024年02月14日
    浏览(40)
  • leaflet 示例教程100+ 目录

    目前已发表134篇文章 vue+leaflet系列教程旨在为开发者提供简单快捷的 代码示例 , 复制即可用 。在每一个示例中,解释相应的API知识点,做到 简易实现,轻松学会 。 基础设置 类别 标题 搭建 从0 到1 搭建开发环境 Layer 清除所有图层的通用方法 Layer 删除所有的marker图层,保

    2024年02月08日
    浏览(52)
  • Leaflet 调用百度瓦片地图服务

    在使用 leaflet 调用第三方瓦片地图服务的项目,主要谷歌地图、高德地图、百度地图和 OSM 地图,与其他三种地图对比,百度地图的瓦片组织方式是不同的。百度从中心点经纬度(0,0)度开始计算瓦片,而谷歌地图是从左上角经纬度(-180,90)度开始计算瓦片;如果直接使用百度瓦片

    2024年02月08日
    浏览(50)
  • leaflet显示大箭头的线(124)

    第124个 点击查看专栏目录 本示例的目的是介绍如何在vue+leaflet中显示大箭头的线。 直接复制下面的 vue+openlayers源代码,操作2分钟即可运行实现效果. 示例效果

    2024年02月03日
    浏览(28)
  • Leaflet结合Echarts实现迁徙图

    效果图如下:

    2024年02月04日
    浏览(35)
  • vue+leaflet笔记之热力图

    本文介绍了Web端使用 Leaflet 开发库展示热力图方法 (底图来源:天地图),结合leaflet.heat插件可以很容易的做出热力图,通过调整其配置参数可以优化热力图的显示,以达到最佳的可视化效果,显示效果如下图所示。 Vue 开发库:3.2.37 Leaflet 开发库:1.9.3 Leaflet主要插件: leaflet

    2024年02月10日
    浏览(62)
  • 基于Leaflet的Webgis经纬网格生成实践

    目录 前言 一、Leaflet.Graticule 1、参数说明 二、集成使用 1、新建网页模板 2、初始化地图对象 3、运行效果 三、源码调用分析 1、参数注入  2、经纬网构建 总结          众所周知,在地球仪上或地图上,经线和纬线相互交织,就构成经纬网。利用它上面标注的经度和纬度,

    2024年02月04日
    浏览(38)
  • Leaflet实现要素点击查询弹窗展示属性

    leaflet是一个非常轻量的webgis框架,同时呢代码结构也比较简单。 如果项目上有需求需要大家实现对于个行政区点击查询相关属性并且展示,就像下图这样:  我们可以这样做。首先要清楚leaflet框架的构造,leaflet在加载图层的时候是对图层添加了事件监听的,也就是说用户对

    2024年02月09日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包