使用leaflet在html中加载天地图且去掉左上角的缩放图标以及右下角的logo

news2024/11/28 18:41:03

前言

  我们这一节使用轻量化的javascript库leaflet来实现在html中加载天地图,实现类似高德地图、百度地图的效果。

  效果图如下:
在这里插入图片描述

  话不多说,进入主题!!

一、注册开发者权限

  我们需要在天地图平台注册一个账号,然后申请成为开发者,我这里申请的是个人开发者,申请流程我就不做演示了。

  天地图平台:https://www.tianditu.gov.cn/

  进入开发者界面:
在这里插入图片描述
  
进入控制台,点击创建新应用:
在这里插入图片描述

  填写对应的信息,点击提交,创建完成:
在这里插入图片描述

  创建完成之后,我们会有一个Key名称,这个就相当于我们的秘钥,要保管好。

二、加载天地图

1、下载leaflet

  leaflet下载地址:https://leafletjs.com/download.html

  进入leaflet官网,下载最新的稳定版代码,如图:
在这里插入图片描述

  下载完成之后,我们只需要保留主要的三个文件即可,images、leaflet.css、leaflet.js,将这三个文件导入我们的项目中,如图:
在这里插入图片描述

2、加载天地图

  1、首先将css和js文件引入html中:

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

  2、leaflet加载地图和echarts一样,也需要一个带框高的盒子才行,所以我们需要定义一个带宽高的div标签来装载地图,我们需要给div起一个id来唯一标识这个盒子(注意:不能使用class,否则leaflet识别不了):

<style>
    #map {
        position: absolute;
        width: 100%;
        height: 100vh;
        left: 0;
        top: 0;
    }
</style>
<body>
<div id="map"></div>
</body>

  3、编写js代码加载天地图:

<script>
    //设置底图
    const map = L.map("map",{
        center: [23.82319, 109.02358],  //中心点[纬度,经度]
        zoom: 6,  //默认缩放等级
        crs: L.CRS.EPSG4326  //采用wgs84坐标系
    });
    //开发key
    const key = "xxxxxx";


    //xyz方式加载底图
    const tdt_url_bottom = "https://t0.tianditu.gov.cn/DataServer?T=img_c&x={x}&y={y}&l={z}&tk=";
    //xyz方式加载底图的标注
    const tdt_url_label = "https://t0.tianditu.gov.cn/DataServer?T=cia_c&x={x}&y={y}&l={z}&tk=";

    //设置底图图层(url请求地址,偏移量,贴片尺寸大小,最小缩放等级,最大缩放层级)
    const layer_bottom = L.tileLayer(tdt_url_bottom + key, {
        zoomOffset: 1,
        tileSize: 256,
        minZoom: 7,
        maxZoom: 17
    });
    //设置底图标注
    const layer_label = L.tileLayer(tdt_url_label + key, {
        zoomOffset: 1,
        tileSize: 256,
        minZoom: 7,
        maxZoom: 17
    });
    //将图层丢到地图上
    layer_bottom.addTo(map);
    layer_label.addTo(map)
</script>

  4、效果如图:
在这里插入图片描述

三、去掉左上角的缩放图标以及右下角的logo

在创建地图时,在option中设置两个属性即可:

const map = L.map("map",{
    center: [23.82319, 109.02358],  //[纬度,经度]
    zoom: 6,  //默认缩放层级和layer的最小缩放层级一致
    crs: L.CRS.EPSG4326,  //坐标系的代码
    zoomControl: false,  //去掉左上角缩放图标
    attributionControl: false  //去掉右下角的logo
});

总结

  完成代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>leaflet加载天地图</title>
    <link rel="stylesheet" href="leaflet.css">
    <script src="leaflet.js"></script>
</head>
<style>
    #map {
        position: absolute;
        width: 100%;
        height: 100vh;
        left: 0;
        top: 0;
    }
</style>
<body>
<div id="map"></div>
</body>
<script>
    //设置底图
    const map = L.map("map",{
        center: [23.82319, 109.02358],  //[纬度,经度]
        zoom: 6,  //默认缩放等级
        crs: L.CRS.EPSG4326  //wgs84坐标系的代码
    });
    //开发key
    const key = "xxxx";


    //xyz方式加载底图
    const tdt_url_bottom = "https://t0.tianditu.gov.cn/DataServer?T=img_c&x={x}&y={y}&l={z}&tk=";
    //xyz方式加载底图标注
    const tdt_url_label = "https://t0.tianditu.gov.cn/DataServer?T=cia_c&x={x}&y={y}&l={z}&tk=";

    //设置底图图层(url请求地址,偏移量,贴片尺寸大小,最大缩放层级)
    const layer_bottom = L.tileLayer(tdt_url_bottom + key, {
        zoomOffset: 1,
        tileSize: 256,
        minZoom: 7,
        maxZoom: 17
    });
    //设置底图标注
    const layer_label = L.tileLayer(tdt_url_label + key, {
        zoomOffset: 1,
        tileSize: 256,
        minZoom: 7,
        maxZoom: 17
    });
    //将图层丢到地图上
    layer_bottom.addTo(map);
    layer_label.addTo(map)
</script>
</html>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/741790.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Qt】VS2013+QT5.6.3环境搭建

安装VS2013 略 安装Qt 安装文件&#xff1a;qt-opensource-windows-x86-msvc2013-5.6.3.exe&#xff08;官网已经不提供下载了。&#xff09; 安装步骤&#xff1a;安装到C盘根目录&#xff0c;其它略。 安装qt vs插件 1、下载地址&#xff1a; https://download.qt.io/a…

string常见功能模拟

学到string终于就不用像c语言一样造轮子了&#xff0c;接下来我们就模拟一下string方便我们更好理解string&#xff0c;首先我们都知道库里有个string&#xff0c;所以为了避免我们的string和库里的冲突&#xff0c;要用命名空间my_string将我们写的string包含在内。string的成…

精准医学时代:探索人工智能在DCA曲线下的临床医学应用

一、引言 在当今医学领域中&#xff0c;精准医学作为一种以个体差异为基础的医疗模式逐渐受到重视和应用[1]。精准医学基于个体基因组、环境和生活方式因素的综合分析&#xff0c;旨在实现个体化的预防、诊断和治疗方案&#xff0c;从而提供更好的临床结果[2]。与传统医学相比&…

MACD进阶版指标公式,提前一天判断MACD金叉

MACD是一种常用的技术分析指标&#xff0c;用于判断价格的趋势和动能&#xff0c;其原理是基于两条指数移动平均线的比较和对价格的平滑处理&#xff0c;MACD金叉是指MACD指标中的快线DIF从下方向上穿过慢线DEA。快线、慢线都是根据收盘价计算出来的&#xff0c;如果想提前一天…

STM32基础知识点总结

一、基础知识点 1、课程体系介绍 单片机概述arm体系结构STM32开发环境搭建 STM32-GPIO编程-点亮世界的那盏灯 STM32-USART串口应用SPI液晶屏 STM32-中断系统 STM32-时钟系统 STM32-ADC DMA 温湿度传感器-DHT11 2.如何学习单片机课程 多听理论、多理解、有问题及时提问 自己多…

论文阅读:基于深度学习的大尺度遥感图像建筑物分割研究

一、该网络中采用了上下文信息捕获模块。通过扩大感受野&#xff0c;在保留细节信息的同时&#xff0c;在中心部分进行多尺度特征的融合&#xff0c;缓解了传统算法中细节信息丢失的问题&#xff1b;通过自适应地融合局部语义特征&#xff0c;该网络在空间特征和通道特征之间建…

时间序列预测 | Matlab基于粒子群算法(PSO)优化径向基神经网络(PSO-RBF)的时间序列预测

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 时间序列预测| Matlab基于粒子群算法(PSO)优化径向基神经网络(PSO-RBF)的时间序列预测 评价指标包括:MAE、MBE和R2等,代码质量极高,方便学习和替换数据。要求2018版本及以上。 部分源码 %% 清空环境变量 warni…

2023年开放式蓝牙耳机选购指南!多款热门开放式蓝牙耳机品牌盘点

前言 大家好&#xff0c;作为专注耳机研究多年的发烧级爱好者&#xff0c;毫不夸张地说我为耳机花的钱比买衣服还多&#xff0c;很多人都在问我开放式耳机到底有没有必要买&#xff1f;答案毫无疑问是有必要&#xff01;开放式耳机佩戴舒适又安全的特质让它在耳机届风靡&#…

zabbix server is not running错误解决方法

1.错误&#xff1a;zabbix server is not running 打开zabbix server的时候&#xff0c;底部飘着一行黄色的警告字 2.解决方法 (1)关闭selinux (2)查看日志文件 #tail -f /var/log/zabbix/zabbix_server.log 发现内存溢出了 __zbx_mem_realloc(): out of memory 那…

vitepress使用

vitepress使用 初始化项目 pnpm init pnpm add vitepress vue 创建一个docs文件夹 在docs下新建index.js文件 # Hello VitePress在package.json中增加打包以及运行的指令 "scripts": {"docs:dev": "vitepress dev docs", // 本地运行调试&qu…

springboot高校党务系统

开发语言&#xff1a;Java 框架&#xff1a;springboot JDK版本&#xff1a;JDK1.8 服务器&#xff1a;tomcat7 数据库&#xff1a;mysql 5.7 数据库工具&#xff1a;Navicat11 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.3.9

实力认可丨通付盾上榜《嘶吼2023网络安全产业图谱》31项细分领域

7月10日&#xff0c;嘶吼安全产业研究院联合国家网络安全产业园区&#xff08;通州园&#xff09;正式发布《嘶吼2023网络安全产业图谱》。通付盾入围本次图谱的基础技术与通用能力、网络与通信安全、安全服务、应用与产业安全、数据安全、开发与应用安全六大类别&#xff0c;3…

day32-Oracle+servlet

0目录 Oraclejdbcjspservlet 1.准备物料 1.1 创建Maven工程&#xff0c;导入依赖 方法1&#xff1a;在maven本地仓库repo中放入下载好的jar包 方法2&#xff1a;换版本&#xff0c;引入依赖 <dependency> <groupId>com.oracle.database.jdbc</groupId>…

x3550M5服务器,2008r2系统,关机后再开机,提示需要系统修复

问题现象&#xff1a; x3550M5服务器&#xff0c;2008r2系统&#xff0c;关机后再开机&#xff0c;提示需要修复&#xff0c;选择语言&#xff0c;点击下一步&#xff0c;选择操作系统一栏是空白的 &#xff08;加载前的图忘记拍&#xff09; 问题分析&#xff1a; 根据网上…

关于c/c++中的isdigit()函数(判断一个字符是不是数字字符)

1&#xff1a;做用&#xff1a;判断一个字符是不是数字字符&#xff08;即&#xff1a;相当于&#xff1a;s[i]>0&&s[i]<9&#xff09; 2&#xff1a;使用方式 char cA; string s"123fgv"; if(isdigit(c)); if(isdigit(s[i]))//返回bool类型 3&…

服务端⾼并发分布式结构演进之路

1.前置概念 应⽤&#xff08;Application&#xff09;/系统&#xff08;System&#xff09; 为了完成一整套服务的一个程序或相互配合的程序群 模块&#xff08;Module&#xff09;/组件&#xff08;Component&#xff09; 当应⽤较复杂时&#xff0c;为了分离职责&#xf…

我爱学QT-制作一个最简单的QT界面

1.qt基础 qt的移植性非常强&#xff0c;一套代码不用我们改太多&#xff0c;直接通用所有平台。不久的将来&#xff0c;qt会被用到MCU上&#xff0c;学习QT还是非常有意义的。 2.做一个简单的QT界面 首先新建工程 注意这个不一样 工程文件分析&#xff1a; #--------------…

day32-存储过程、存储函数、触发器

0目录 Oracle 存储过程、存储函数、触发器 1. 1.1 序列 &#xff08;1&#xff09;语法 创建序列&#xff1a;create sequence 序列名; 启动序列&#xff1a;select 序列名.nextval from dual;&#xff08;每次执行会1&#xff09; 使用序列插入数据&#xff1a;insert…

echarts饼图设置颜色的两种方式

1. 直接写在color数组中 option {color:[#fac858,#e0504b,#e6e9ee],series: {type: pie,radius: [40%, 70%],data: [{ value: 1048, name: Search Engine, },{ value: 735, name: Direct},{ value: 580, name: Email },]} };2. 在series.data.itemStyle.color中 option {se…