返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Leaflet基础入门教程示例
  • 785
分享到

Leaflet基础入门教程示例

Leaflet基础Leaflet入门教程 2023-01-04 15:01:28 785人浏览 八月长安
摘要

目录什么是WEBGIS?什么是Leaflet?在Vue中安装Leaflet,与其他依赖在App.vue中使用初始化地图chinaProvider地图瓦片addControls使用工具

什么是Webgis?

webGis又称之为网络地理信息系统,GIS的全名是Geographic InfORMation System,它是在计算机硬件,软件系统支持下,对整个或部分地球表层空间中的有关地理分布数据进行采集,储存,管理,运算,分析,显示和描述的技术系统。

地图是GIS的表现形式,但是GIS深层是空间信息的处理,简单说就是将GIS这门学科所能提供的功能,以B/S技术展现给用户,使用户只需要在浏览器上便能使用这些GIS功能的一个应用方向。

什么是Leaflet?

Leafet 作为 webGis 主流框架之一,Leaflet 是一个开源并且对移动端友好的交互式地图 javascript 库。 它大小仅仅只有39 KB, 并且拥有绝大部分开发者所需要的所有地图特性。

在Vue中安装Leaflet,与其他依赖

// leaflet 核心库
npm install leaflet   
// 地图瓦片
npm install leaflet.chinatmsproviders
// 动态线
npm install leaflet-ant-path
// 侧边栏工具库
npm install @geoman-io/leaflet-geoman-free 

在App.vue中使用

import L from "leaflet";
import "leaflet.chinatmsproviders"; // 插件可加载各种地图(如:智图地图,谷歌地图,高德地图等包含卫星地图)
import "leaflet-ant-path"; //动态线条插件
import "leaflet/dist/leaflet.CSS";
import imgs from "@/assets/svg/logo.svg";
import "@geoman-io/leaflet-geoman-free";
import "@geoman-io/leaflet-geoman-free/dist/leaflet-geoman.css";

初始化地图

    methods:{
         initMap(){
             let _this = this;
            this.map = L.map("map", {
            attributionControl: true,  // 是否版权
            closePopupOnClick: false,  // 点击画布是否直接隐藏弹窗
            maxZoom: 13,               // 最大缩放  
            minZoom: 3,                // 最小缩放
            noWrap: false,             // 该层是否包裹在逆子午线周围 
            worldCopyJump: true,       // 拷贝当前配置
            renderer: L.svg(),         // 矢量渲染 
            }); 
         }
    }

chinaProvider地图瓦片

// 设置需要引入的地图瓦片
// 其他材质包括(天地图,百度,...) git地址:https://GitHub.com/htoooth/Leaflet.ChineseTmsProviders 
L.tileLayer?.chinaProvider('Geoq.Normal.PurplishBlue').addTo(this.map);
// 设置中心点与缩放层级
this.map.setView([41.02999636902566, 108.984375], 3);

addControls使用工具集

 this.map.pm.addControls({
        position: "topleft",
        drawCircle: false,
  });

attribution创建自定义版权

const attrs = L.control.attribution({ prefix: "Leafet地图" });
      attrs.addTo(this.map);

Marker创建点

  • 首先在data中定义两个layers组
  data(){
        return{
                // layerGroup 图层组主要用于添加标点与线段对象
                LineGroupLayer: L.layerGroup([]),
                MakerGroupLayer: L.layerGroup([]),
        }
    }
  • 定义点
// 定义图标
const icons = L.icon({
    iconUrl: imgs,
    iconSize: [20, 20],
    iconAnchor: [5, 5],
    shadowSize: [0, 0],
    });
// 创建点实例 将经纬度传入,并在该点位显示图标
let makerStart = L.marker([50.5, 30.5],{ icon: icons });
// 添加图
this.MakerGroupLayer.addLayer(makerStart); 
this.map.addLayer(this.MakerGroupLayer); // 添加点   

创建线

let paths = [
        [35.485106, 123.078832],
        [26.787026, 126.104039],
        [22.847052, 126.281993],
        [18.999909, 126.578654],
      ]; //随便打的点
let lineLayer = L.polyline.antPath(paths, {
    // 线
    paused: false, //暂停  初始化状态
    reverse: false, //方向反转
    delay: 1000, //延迟,数值越大效果越缓慢
    dashArray: [10, 20], //间隔样式
    weight: 2, //线宽
    opacity: 0.7, //透明度
    color: "red",
    pulseColor: "#fff", //块颜色
    });
this.LineGroupLayer.addLayer(lineLayer);
this.map.addLayer(this.LineGroupLayer); // 添加线

Polygon创建三角形

  let multipolygon = new L.Polygon(
        [
          [
            [17.385044, 78.486671],
            [16.506174, 80.648015],
            [17.686816, 83.218482],
          ],
        ],
        {
          color: "rgba(0,0,255,.7)",
          weight: 1,
        }
      );
      multipolygon.addTo(this.map);

Popup弹窗&Tooltip提示

  • Popup
// 自定义popup,并显示图片
var popup = L.popup()
        .setLatLng([e.latlng.lat, e.latlng.lng])
        .setContent(`<p>Hello world!<br />This is a nice popup.</p><img src="${imgs}"/>`)
        .openOn(_this.map); 
  • Tooltip
// 定义图标
const icons = L.icon({
    iconUrl: imgs,
    iconSize: [20, 20],
    iconAnchor: [5, 5],
    shadowSize: [0, 0],
    });
let popupDom =
    "<div class='pop-data'><ul><li class='time'><span>这是一个点:</span>" +
    "</li><li><span>内容...</span>" +
    "</li><li><span>内容...</span>" +
    "</li></ul></div>"; //   绑定popup
let makerEnd = L.marker([17.686816, 83.218482], {
    icon: icons,
    }).bindTooltip(popupDom); 
this.MakerGroupLayer.addLayer(makerEnd);            

Geojson区域描边

首先需要我们在(DataV)[datav.aliyun.com/portal/scho…

//  引入Geojson的json文件,这里直接将文件展开了,在项目中不应该这么做
 let Geojson = {
        type: "FeatureCollectio", 
        properties: { zhName: "河北省", name: "Hebei" },
        geometry: {
          type: "MultiPolygon",
          coordinates: [
            [
              [116.365069,40.943216],
              [116.37641,40.939681],
              [116.398515,40.905999]
              ....
            ],
          ],
        },
      }; 
      L.geoJSON(Geojson, style: {
          weight: 2, //边框粗细
          opacity: 0.4, //透明度
          fillColor: 'transparent', //区域填充颜色
          fillOpacity: 0.3, //区域填充颜色的透明
        }).addTo(this.map);

总结

根据上面的例子总结到Leaflet框架设计简单,而且官方提供很多插件、具有高扩展性、性能良好和可用性强等特点。它可以在所有主流的桌面和移动平台上高效运行,能够利用主流浏览器中利用HTML5css3的优势的同时也兼容老版本浏览器,更加适合移动端,但是只支持2D地图,不支持3D地图。

以上就是Leaflet 基础入门教程示例的详细内容,更多关于Leaflet 基础的资料请关注编程网其它相关文章!

--结束END--

本文标题: Leaflet基础入门教程示例

本文链接: https://lsjlt.com/news/176709.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Leaflet基础入门教程示例
    目录什么是Webgis?什么是Leaflet?在Vue中安装Leaflet,与其他依赖在App.vue中使用初始化地图chinaProvider地图瓦片addControls使用工具...
    99+
    2023-01-04
    Leaflet 基础 Leaflet 入门教程
  • python深度学习tensorflow入门基础教程示例
    目录正文1、编辑器2、常量3、变量4、占位符5、图(graph)例子1:hello world例子2:加法和乘法例子3:矩阵乘法正文 TensorFlow用张量这种数据结构来表示所有...
    99+
    2024-04-02
  • mongodb 基础入门教程
    算是学习下来精炼的笔记,希望对大家有帮助。如果有问题欢迎大家指正。 0.概述 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统。 在高负载的情况下,添加更多的节点,可以保证服务器性能。 MongoDB 旨在为W...
    99+
    2015-07-29
    mongodb 基础入门教程
  • python入门基础教程
    Python是一门简单易学、功能强大的编程语言,适合初学者入门。下面是一个简要的Python入门基础教程,帮助您快速上手Python编程。1. 安装Python:首先,您需要在计算机上安装Python解释器。您可以从Python官方网站(h...
    99+
    2023-10-25
    python 入门 基础教程
  • SQL 零基础入门教程
    目录一、了解 SQL二、检索数据三、排序检索数据四、过滤数据五、高级数据过滤六、用通配符进行过滤七、创建计算字段八、使用函数处理数据九、汇总数据十、分组数据十一、使用子查询十二、联结表十三、创建高级联结十四、组合查询十五、插入数据十六、更...
    99+
    2014-09-15
    SQL 零基础入门教程
  • Python pygame入门基础教程
    本篇文章给大家带来了关于Python的相关知识,大家都知道pygame是跨平台Python模块,专为电子游戏设计,包含图像、声音,下面介绍了关于Python pygame新手入门基础教程的相关资料,希望对大家有帮助。【相关推荐:Python...
    99+
    2022-08-08
    python
  • EF Core基础入门教程
    EF Core 是一个ORM(对象关系映射),它使 .NET 开发人员可以使用 .NET对象操作数据库,避免了像ADO.NET访问数据库的代码,开发者只需要编写对象即可。 EF Co...
    99+
    2024-04-02
  • SQL 教程-入门基础篇
    文章目录 SQL 简介SQL 语法SQL SELECT 语句SQL SELECT DISTINCT 语句SQL WHERE 子句SQL AND & OR 运算符SQL ORDER BY...
    99+
    2023-08-31
    sql 数据库 mybatis mysql
  • Swaggo零基础入门教程
    目录配置流程注意区分下载swaggo初始化快速上手gin-swagger简单测试详细配置配置流程 注意区分 go-swagger != swaggo 二者功能差不多,都是生成接口文档...
    99+
    2023-01-28
    Swaggo入门 Golang Swaggo入门
  • Java SQL注入案例教程及html基础入门
    目录一,SQL注入–1,需求–2,测试–3,总结二,练习PreparedStatement–1,需求–2,测试–3,制作工具类三,HTML–1,概述–2,入门案例–3,使用工具–4,...
    99+
    2024-04-02
  • HTML入门零基础教程(四)
    嗨,大家好,我是异星球的小怪同志 一个想法有点乱七八糟的小怪 如果觉得对你有帮助,请支持一波。 希望未来可以一起学习交流。 通过前三篇的学习,相信你们对HTML有了一些基础的了解,那么我们就来先做一个小练习,巩固一下之前所学习的知识。 目...
    99+
    2023-08-31
    html 前端 css javascript vscode
  • python入门基础教程09 pytho
    表达式表达式,是由数字、算符、数字分组符号括号、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合,故表示通常是由操作数和操作符两部分组成,如果操作符前后均有操作数,我们称此类操作符是双目运算符,例如加法、减法、取模、赋值运算等运算...
    99+
    2023-01-31
    基础教程 入门 python
  • python入门基础教程05 Pytho
    Python-Shell反馈常见错误初学者通常会使用Python-Shell来学习Python基础及语法知识,在使用Python-Shell 时会遇到这样或者那样的错误,有的是语法错误,有的是键入的函数或者变量名字拼写错误,现就初学者常出现...
    99+
    2023-01-31
    基础教程 入门 python
  • python入门基础教程10 pytho
    if分支语句分支语句的作用是在某些条件控制下有选择的执行实现一定功能语句块。if 分支语句则是当if后的条件满足时,if 下的语句块被执行,语法格式如下所示:if <condition>:     statements让我们看看...
    99+
    2023-01-31
    基础教程 入门 python
  • python入门基础教程02 Pytho
    02 Python简介Python简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言,属于应用层软件。自从20 世纪90 年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务、自动化运维、图像处理游戏和We...
    99+
    2023-01-31
    基础教程 入门 python
  • SQL 入门教程:数据库基础
    目录一、数据库二、表三、列和数据类型四、行五、主键请参阅 目录汇总:SQL 入门教程:面向萌新小白的零基础入门教程 你正在读本 SQL 教程,这表明你需要以某种方式与数据库打交道。SQL 正是用来实现这一任务的语言,因此在学习 SQL 之...
    99+
    2017-01-19
    SQL 入门教程:数据库基础
  • Vue全家桶入门基础教程
    目录1. Vue概述 2. Vue的基本使用2.1 传统开发模式对比2.2 Vue.js之HelloWorld基本步骤2.3 Vue.js之HelloWorld细节分析3....
    99+
    2024-04-02
  • MySQL基础入门教程之事务
    目录引言1、事务操作1.1 未控制事务1.2 控制事务一1.3 控制事务二2、事务的四大特性3、并发事务问题4、事务隔离级别总结引言 事务是一组操作的集合,它是一个不可分割的工作单位...
    99+
    2024-04-02
  • Python pygame新手入门基础教程
    目录pygame简介pygame实现窗口设置屏幕背景色添加文字绘制多边形绘制直线绘制圆形绘制椭圆绘制矩形总结pygame简介 pygame可以实现python游戏的一个基础包。 py...
    99+
    2024-04-02
  • Python学习入门基础教程(learn
     在Python里可以自定义函数,实现某特定功能,这里首先要区分一下函数的定义和函数的调用两个基本概念,初学者往往容易混淆。      函数的定义是指将一堆能实现特定功能的语句用一个函数名标识起来,而函数的调用则是通过函数名来使用这一堆语句...
    99+
    2023-01-31
    基础教程 入门 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作