前端项目加载离线的百度地图,利用工具进行切指定区域的地图影像,自定义图层getTilesUrl

百度地图在开发中我们经常使用,但是有些项目是需要在内网进行,这时候我们不得不考虑项目中一些功能需要请求外网静态资源,比如百度地图。只有把包下载到本地,才能让静态资源文件的正常的访问。

目录

获取百度地图开发秘钥

引入在线百度地图

加载离线地图

获取百度地图离线包

引入百度地图离线包

显示指定区域的地图影像

全能电子地图下载器

街道图

混合图

百度地图切图工具

完整代码


获取百度地图开发秘钥

我们使用的v.3.0版本

在项目中要使用百度地图API,必须要有秘钥,获取方法教程jspopularGL | 百度地图API SDK

引入在线百度地图

<style scoped>
#baiduMap {height: 100%;width: 100%;
}</style><template><div id="baiduMap"></div>
</template><script>
import $ from 'jquery'
/* eslint-disable */
export default {name:'baiduMap',data(){return{url:'http://api.map.baidu.com/api?v=3.0&ak=你自己申请的秘钥&callback=createMap'}},mounted(){this.initMap()},methods:{addBaiDuAPI(url){return new Promise((resolve)=>{let script = document.createElement("script");script.src = url;document.body.appendChild(script);resolve()})},async initMap() {const maxZoom =19;let that = this;await that.addBaiDuAPI(that.url);//百度地图加载成功,会回调createMap这个函数window.createMap = () => {window.BMAP_NORMAL_MAP.m.X3 = window.BMAP_NORMAL_MAP.m.mc = window.BMAP_NORMAL_MAP.m.maxZoom = window.BMAP_PERSPECTIVE_MAP.m.X3 = window.BMAP_PERSPECTIVE_MAP.m.mc = window.BMAP_PERSPECTIVE_MAP.m.maxZoom = window.BMAP_SATELLITE_MAP.m.X3 = window.BMAP_SATELLITE_MAP.m.mc = window.BMAP_SATELLITE_MAP.m.maxZoom = window.BMAP_HYBRID_MAP.m.X3 = window.BMAP_HYBRID_MAP.m.mc = window.BMAP_HYBRID_MAP.m.maxZoom = maxZoom;//创建Map实例let map = new BMap.Map("baiduMap", {minZoom: 3, maxZoom: 19}); // 创建Map实例map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 创建点坐标,初始化地图,设置中心点坐标和地图级别map.setMapType(BMAP_NORMAL_MAP);window.baiduMap = map; //存储到全局变量baiduMapmap.enableScrollWheelZoom(true); //开启鼠标滚轮缩放map.enableInertialDragging(); //两秒后开启惯性拖拽setTimeout(function (){//添加地图类型控件map.addControl(new BMap.ScaleControl({anchor: BMAP_ANCHOR_BOTTOM_LEFT, type: BMAP_NAVIGATION_CONTROL_ZOOM}));map.addControl(new BMap.NavigationControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT}));//地图类型,地图,卫星var size = new BMap.Size(20, 220);map.addControl(new BMap.MapTypeControl({mapTypes: [BMAP_NORMAL_MAP, BMAP_HYBRID_MAP], anchor: BMAP_ANCHOR_BOTTOM_RIGHT, offset: size,}));map.addEventListener("mousemove", function (e) {$(".BMap_cpyCtrl").text("鼠标位置:" + e.point.lng + "," + e.point.lat)});//城市控件size = new BMap.Size(70, 10);map.addControl(new BMap.CityListControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT, offset: size,}));/**map.addEventListener("zoomend", function() {let zoom = map.getZoom();map.centerAndZoom((new BMap.Point(lon, lat)),zoom)});**/},300)};},}
}
</script>

运行加载效果

加载离线地图

获取百度地图离线包

获取地址:链接:https://pan.baidu.com/s/1HgtmntYcQEdCDOii5ypazQ?pwd=yqe7提取码:yqe7

引入百度地图离线包

1、下载好的离线包,放在项目的公共资源目录下

2、修改代码,添加initOfflineMap方法加载离线地图

async initOfflineMap(){let that = this;//加载工具类javascript文件window.bmapConfig = {'tiles_path': '',      //显示普通地图,为空默认在 tiles/ 目录'tiles_satellite_path': '', //显示卫星影像,为空默认在 tiles_satellite/ ,只有底图没有地址标注'tiles_hybrid_path': ''  //显示带有街道的卫星影像,为空默认在 tiles_hybrid/,需和卫星影像配合使用};window.bmapConfig.home_dir = "/static/bmap_offline_demo/"; //地图API主目录window.bmapConfig.tiles_path = bmapConfig.home_dir + "/tiles";window.bmapConfig.tiles_satellite_path = bmapConfig.home_dir + "/tiles_satellite";window.bmapConfig.tiles_hybrid_path = bmapConfig.home_dir + "/tiles_hybird";await that.addScript(window.bmapConfig.home_dir + "map3.0.js");//创建Map实例let map = new BMap.Map("baiduMap", {minZoom: 3, maxZoom: 19}); // 创建Map实例map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 创建点坐标,初始化地图,设置中心点坐标和地图级别map.setMapType(BMAP_NORMAL_MAP);window.baiduMap = map; //存储到全局变量baiduMapmap.enableScrollWheelZoom(true); //开启鼠标滚轮缩放map.enableInertialDragging(); //两秒后开启惯性拖拽setTimeout(function (){//添加地图类型控件map.addControl(new BMap.ScaleControl({anchor: BMAP_ANCHOR_BOTTOM_LEFT, type: BMAP_NAVIGATION_CONTROL_ZOOM}));map.addControl(new BMap.NavigationControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT}));//地图类型,地图,卫星var size = new BMap.Size(20, 220);map.addControl(new BMap.MapTypeControl({mapTypes: [BMAP_NORMAL_MAP, BMAP_HYBRID_MAP], anchor: BMAP_ANCHOR_BOTTOM_RIGHT, offset: size,}));map.addEventListener("mousemove", function (e) {$(".BMap_cpyCtrl").text("鼠标位置:" + e.point.lng + "," + e.point.lat)});//城市控件size = new BMap.Size(70, 10);map.addControl(new BMap.CityListControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT, offset: size,}));/**map.addEventListener("zoomend", function() {let zoom = map.getZoom();map.centerAndZoom((new BMap.Point(lon, lat)),zoom)});**/},300)},

3、在mounted中使用,需要注释在线地图的方法。

mounted(){// this.initMap() // 加载在线地图this.initOfflineMap() // 加载离线地图},

4、出现淡黄的画面说明引入离线地图成功。

显示指定区域的地图影像

利用切图工具,获取中国地图任意区域的,使用百度地图提供的自定义图层API(getTilesUrl)加载图像。

有两种工具切图:1、全能电子地图下载器。2、百度地图切图工具。

区别:

  • 百度地图切图工具只能切街道图,不能切混合图
  • 全能电子地图下载器app已经提供地图区域,切那个区域由我们自己决定。百度地图切图工具是根据一张图片(png格式)进行切图,根据地图瓦片规则进行切片

根据自己场景需求进行选择。

全能电子地图下载器:https://pan.baidu.com/s/1OzdhPWpIqiRaSiWGs2CVzw?pwd=wc41提取码:wc41。

百度地图切图工具:链接:https://pan.baidu.com/s/1ANKedI6PDr3Hx6mG55XXcw?pwd=m0bi提取码:m0bi。

全能电子地图下载器

2、地图级别一般用13到17级,最大只能切到17级(勾选上18、19什么的也没用,切不了)

一个区域切的级别很多的话,切图速度很慢,如果非要切多级别的,建议级别分开切

3、点击地图,选百度地图,需要的地图类型只有街道图和混合图,这两种地图需要分开切图。

街道图

1、选街道图后,可以选两种切图方式,一种是自己框选,一种是选择某个地区。

2、选择存放路径,点击开始,开始切图。

3、切图完成后,在目录下会有baidumaps文件夹,里面的roadmap文件就是街道图文件。把roadmap文件夹里的全部文件复制到离线地图包bmap_offline_demo/目录下。

roadmap目录名称可以自定义名称

混合图

1、选混合图,其他步骤和街道图一样。

2、切图完成后,把overlay文件夹里的全部文件复制到离线地图包bmap_offline_demo/的tiles_hybird文件夹里,再把satellite文件夹里的全部文件复制到离线地图包bmap_offline_demo/的tiles_satellite文件夹里。

3、添加代码

getTilesUrl方法会在地图缩放改变时,自动调用。

zoom:地图当前所在的缩放级别。

切好的图最好放在服务器上面,因为切的级别越大,文件就越多。切图大小在几百M,G,T级别都是很正常。

//自定义图层let tileLayer = new BMap.TileLayer({isTransparentPng: true});tileLayer.getTilesUrl = function (tileCoord, zoom) {if (zoom >= 3) {var x = tileCoord.x;var y = tileCoord.y;if (x < 0) {x = 'M' + (-x);}if (y < 0) {y = 'M' + (-y);}//根据瓦片的文件路径拼接URLreturn '/static/bmap_offline_demo/roadmap/' + zoom + '/' + x + '/' + y + '.png';}};map.addTileLayer(tileLayer);

4、显示效果,地图显示的就是我们刚刚切好的区域图

百度地图切图工具

1、双击运行BaiduMapTileCutter.exe。

2、选择存储路径,输出类型选择仅图块,输入经纬度,点击下一步。

3、自定义放大级别,最大为19,最小为3。设置之后点击下一步。

4、作为图层保存,点击下一步,随后开始切图。

5、切图成功后,去保存路径查找。

将切好的放大级别的文件放到服务器或项目上,在bmap_offline_demo/目录下新建文件夹,文件夹名称自定义,把切换的瓦片 7.8.9这三个级别放到自定义文件夹目录里面。

需要注意的是,这个自定义文件目录的名称和代码里面的路径一致

完整代码

baiduMap.vue

<style scoped>
#baiduMap {height: 100%;width: 100%;
}</style><template><div id="baiduMap"></div>
</template><script>
import $ from 'jquery'
/* eslint-disable */
export default {name:'baiduMap',data(){return{url:'http://api.map.baidu.com/api?v=3.0&ak=你自己申请的秘钥&callback=createMap'}},mounted(){// this.initMap() // 加载在线地图this.initOfflineMap() // 加载离线地图},methods:{addScript(src) {let script = document.createElement("script");script.src = src;document.body.appendChild(script);},addBaiDuAPI(url){return new Promise((resolve)=>{let script = document.createElement("script");script.src = url;document.body.appendChild(script);resolve()})},async initMap() {const maxZoom =19;let that = this;await that.addBaiDuAPI(that.url);//百度地图加载成功,会回调createMap这个函数window.createMap = () => {window.BMAP_NORMAL_MAP.m.X3 = window.BMAP_NORMAL_MAP.m.mc = window.BMAP_NORMAL_MAP.m.maxZoom = window.BMAP_PERSPECTIVE_MAP.m.X3 = window.BMAP_PERSPECTIVE_MAP.m.mc = window.BMAP_PERSPECTIVE_MAP.m.maxZoom = window.BMAP_SATELLITE_MAP.m.X3 = window.BMAP_SATELLITE_MAP.m.mc = window.BMAP_SATELLITE_MAP.m.maxZoom = window.BMAP_HYBRID_MAP.m.X3 = window.BMAP_HYBRID_MAP.m.mc = window.BMAP_HYBRID_MAP.m.maxZoom = maxZoom;//创建Map实例let map = new BMap.Map("baiduMap", {minZoom: 3, maxZoom: 19}); // 创建Map实例map.centerAndZoom(new BMap.Point(116.404, 39.915), 11); // 创建点坐标,初始化地图,设置中心点坐标和地图级别map.setMapType(BMAP_NORMAL_MAP);window.baiduMap = map; //存储到全局变量baiduMapmap.enableScrollWheelZoom(true); //开启鼠标滚轮缩放map.enableInertialDragging(); //两秒后开启惯性拖拽setTimeout(function (){//添加地图类型控件map.addControl(new BMap.ScaleControl({anchor: BMAP_ANCHOR_BOTTOM_LEFT, type: BMAP_NAVIGATION_CONTROL_ZOOM}));map.addControl(new BMap.NavigationControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT}));//地图类型,地图,卫星var size = new BMap.Size(20, 220);map.addControl(new BMap.MapTypeControl({mapTypes: [BMAP_NORMAL_MAP, BMAP_HYBRID_MAP], anchor: BMAP_ANCHOR_BOTTOM_RIGHT, offset: size,}));map.addEventListener("mousemove", function (e) {$(".BMap_cpyCtrl").text("鼠标位置:" + e.point.lng + "," + e.point.lat)});//城市控件size = new BMap.Size(70, 10);map.addControl(new BMap.CityListControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT, offset: size,}));/**map.addEventListener("zoomend", function() {let zoom = map.getZoom();map.centerAndZoom((new BMap.Point(lon, lat)),zoom)});**/},300)};},async initOfflineMap(){let that = this;//加载工具类javascript文件window.bmapConfig = {'tiles_path': '',      //显示普通地图,为空默认在 tiles/ 目录'tiles_satellite_path': '', //显示卫星影像,为空默认在 tiles_satellite/ ,只有底图没有地址标注'tiles_hybrid_path': ''  //显示带有街道的卫星影像,为空默认在 tiles_hybrid/,需和卫星影像配合使用};window.bmapConfig.home_dir = "static/bmap_offline_demo/"; //地图API主目录window.bmapConfig.tiles_path = bmapConfig.home_dir + "/tiles";window.bmapConfig.tiles_satellite_path = bmapConfig.home_dir + "/tiles_satellite";window.bmapConfig.tiles_hybrid_path = bmapConfig.home_dir + "/tiles_hybird";await that.addScript(window.bmapConfig.home_dir + "map3.0.js");//创建Map实例let map = new BMap.Map("baiduMap", {minZoom: 3, maxZoom: 19}); // 创建Map实例map.centerAndZoom(new BMap.Point(107.864933,25.990779), 14); // 创建点坐标,初始化地图,设置中心点坐标和地图级别map.setMapType(BMAP_NORMAL_MAP);window.baiduMap = map; //存储到全局变量baiduMapmap.enableScrollWheelZoom(true); //开启鼠标滚轮缩放map.enableInertialDragging(); //两秒后开启惯性拖拽//自定义图层let tileLayer = new BMap.TileLayer({isTransparentPng: true});tileLayer.getTilesUrl = function (tileCoord, zoom) {if (zoom >= 3) {var x = tileCoord.x;var y = tileCoord.y;if (x < 0) {x = 'M' + (-x);}if (y < 0) {y = 'M' + (-y);}//根据瓦片的文件路径拼接URLreturn '/static/bmap_offline_demo/roadmap/' + zoom + '/' + x + '/' + y + '.png';}};map.addTileLayer(tileLayer);setTimeout(function (){//添加地图类型控件map.addControl(new BMap.ScaleControl({anchor: BMAP_ANCHOR_BOTTOM_LEFT, type: BMAP_NAVIGATION_CONTROL_ZOOM}));map.addControl(new BMap.NavigationControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT}));//地图类型,地图,卫星var size = new BMap.Size(20, 220);map.addControl(new BMap.MapTypeControl({mapTypes: [BMAP_NORMAL_MAP, BMAP_HYBRID_MAP], anchor: BMAP_ANCHOR_BOTTOM_RIGHT, offset: size,}));map.addEventListener("mousemove", function (e) {$(".BMap_cpyCtrl").text("鼠标位置:" + e.point.lng + "," + e.point.lat)});//城市控件size = new BMap.Size(70, 10);map.addControl(new BMap.CityListControl({anchor: BMAP_ANCHOR_BOTTOM_RIGHT, offset: size,}));map.addEventListener("zoomend", function() {let zoom = map.getZoom();map.centerAndZoom((new BMap.Point(107.864933,25.990779)),zoom)});},300)},}
}
</script>

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

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

相关文章

攻略:ChatGPT3.5~4.0(中文版)国内无限制免费版(附网址)【2024年5月最新更新】

一、什么是ChatGPT&#xff1f; 1、ChatGPT的全名是Chat Generative Pre-trained Transformer&#xff0c;其中"chat"表示聊天。"GPT"则是由三部分组成&#xff1a;生成式&#xff08;generative&#xff09;意味着具有创造力&#xff1b;预训练&#xff0…

量化教程3---miniqmt当作第三方库设置,提供源代码

qmt提供了大qmt和miniqmt&#xff0c;大qmt在平台使用&#xff0c;miniqmt提供了交易的api和数据可以本地使用&#xff0c;非常的方便&#xff0c;合适自己开发大型的策略&#xff0c;本地还可以访问其他数据&#xff0c;网络等&#xff0c;也支持服务器 以前的教程 qmt教程1…

C语言 | Leetcode C语言题解之第77题组合

题目&#xff1a; 题解&#xff1a; int** combine(int n, int k, int* returnSize, int** returnColumnSizes) {int* temp malloc(sizeof(int) * (k 1));int tempSize 0;int** ans malloc(sizeof(int*) * 200001);int ansSize 0;// 初始化// 将 temp 中 [0, k - 1] 每个…

《21天学通C++》(第十二章)运算符类型与运算符重载

1.为什么要重载运算符&#xff1f; 通过重载运算符&#xff0c;可以将复杂的操作封装成简单的运算符形式&#xff0c;简化代码&#xff0c;提高可读性下面举一个简单的例子 计算两个点的坐标之和。 1.不重载运算符 #include <iostream> using namespace std; class P…

实践指南:如何将SpringBoot项目无缝部署到Tomcat服务器

序言 SpringBoot 是一个用来简化 Spring 应用初始搭建以及开发过程的框架&#xff0c;我们可以通过内置的 Tomcat 容器来轻松地运行我们的应用。但在生产环境中&#xff0c;我们可能需要将应用部署到独立的 Tomcat 服务器上。本文给大家介绍 SpringBoot 项目部署到独立 Tomcat…

TypeScript学习日志-第二十四天(webpack构建ts+vue3)

webpack构建tsvue3 一、构建项目目录 如图&#xff1a; shim.d.ts 这个文件用于让ts识别.vue后缀的 后续会说 并且给 tsconfig.json 增加配置项 "include": ["src/**/*"] 二、基础构建 安装依赖 安装如下依赖&#xff1a; npm install webpack -D …

Linux系统(CentOS)下安装配置 Nginx 超详细图文教程

一、下载并安装 1.打开nginx官网并点击右侧的download&#xff0c;Nginx官网下载地址 2.选择稳定版本 我放在/usr/local/nginx/下&#xff0c;新建文件夹 mkdir /usr/local/nginx/ 通过xftp传输到Linux的服务器上&#xff0c;这里方法不过多复述。 或者如果Linux联网&#xf…

国内如何访问 OpenAI 的 api

这个问题甚至我的一些大厂的朋友也不太清楚&#xff0c;所以我觉得有必备写一篇文章来简单盘盘它&#xff0c;希望能帮助到有需要的人 众所周知&#xff0c;由于大陆与 OpenAI 双方互相封锁&#xff0c;大陆是无法直接访问 OpenAI api 的 不过由于 GPT 4 的统治地位&#xff0c…

CCF-Csp算法能力认证, 202303-1重复局面(C++)含解析

前言 推荐书目&#xff0c;在这里推荐那一本《算法笔记》&#xff08;胡明&#xff09;&#xff0c;需要PDF的话&#xff0c;链接如下 「链接&#xff1a;https://pan.xunlei.com/s/VNvz4BUFYqnx8kJ4BI4v1ywPA1?pwd6vdq# 提取码&#xff1a;6vdq”复制这段内容后打开手机迅雷…

C++ | Leetcode C++题解之第77题组合

题目&#xff1a; 题解&#xff1a; class Solution { public:vector<int> temp;vector<vector<int>> ans;vector<vector<int>> combine(int n, int k) {// 初始化// 将 temp 中 [0, k - 1] 每个位置 i 设置为 i 1&#xff0c;即 [0, k - 1] 存…

标准引领 | 竹云参编《面向云计算的零信任体系》行业标准正式发布!

近日&#xff0c;中华人民共和国工业和信息化部公告2024年第4号文件正式发布行业标准&#xff1a;YD/T 4598.1-2024《面向云计算的零信任体系 第1部分&#xff1a;总体架构》&#xff08;后简称“总体架构”&#xff09;&#xff0c;并于2024年7月1日起正式实施。 该标准汇集大…

Python爬虫基础知识学习(以爬取某二手房数据、某博数据与某红薯(书)评论数据为例)

一、爬虫基础流程 爬虫的过程模块化&#xff0c;基本上可以归纳为以下几个步骤&#xff1a; 1、分析网页URL&#xff1a;打开你想要爬取数据的网站&#xff0c;然后寻找真实的页面数据URL地址&#xff1b; 2、请求网页数据&#xff1a;模拟请求网页数据&#xff0c;这里我们介…

基于SSM的“小型企业人事管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SSM的“小型企业人事管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SSM 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统功能结构图 登录界面 个人信息页面 用户打卡页面 扣…

平航杯复现

简单介绍及前期操作 esxi镜像挂载是一个新的创新点 就根据官方的wp进行挂载就可以了&#xff0c;后面差不多常规的服务器取证操作&#xff0c;然后服务器和计算机&#xff0c;u盘取证都有点联系&#xff0c;还是需要队友配合好一点 配置网段我的建议是把本机的配置改一下&am…

「2024年」前端开发常用工具函数总结 TypeScript

前言 在前端开发中&#xff0c;工具函数是提高代码复用率、保持代码整洁和增加开发效率的关键。使用 TypeScript 编写工具函数不仅可以帮助开发者捕捉到更多的类型错误&#xff0c;还可以提供更清晰的代码注释和更智能的代码补全。下面是一些在 TypeScript 中常用的前端开发工…

Garden Planner for Mac v3.8.62注册激活版:园林绿化设计软件

Garden Planner for Mac是一款专为苹果Mac OS平台设计的园林景观设计软件。这款软件的主要功能是帮助用户设计梦想中的花园&#xff0c;包括安排植物、树木、建筑物和其他物体。 Garden Planner for Mac提供了一个包含1200多种植物和物体符号的库&#xff0c;这些符号都可以进行…

RAFT:引领 Llama 在 RAG 中发展

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

《ESP8266通信指南》13-Lua 简单入门(打印数据)

往期 《ESP8266通信指南》12-Lua 固件烧录-CSDN博客 《ESP8266通信指南》11-Lua开发环境配置-CSDN博客 《ESP8266通信指南》10-MQTT通信&#xff08;Arduino开发&#xff09;-CSDN博客 《ESP8266通信指南》9-TCP通信&#xff08;Arudino开发&#xff09;-CSDN博客 《ESP82…

hadoop学习---基于Hive的教育平台数据仓库分析案例(三)

衔接第一部分&#xff0c;第一部分请点击&#xff1a;基于Hive的教育平台数据仓库分析案例&#xff08;一) 衔接第二部分&#xff0c;第二部分请点击&#xff1a;基于Hive的教育平台数据仓库分析案例&#xff08;二) 学生出勤模块&#xff08;全量分析&#xff09;&#xff1a…

CTF-密码学基础

概述 密码学(Cryptolopy)&#xff1a;是研究信息系统安全保密的科学 密码学研究的两个方向&#xff1a; 密码编码学(Cryptography)&#xff1a;主要研究对信息进行编码&#xff0c;实现对信息的隐蔽密码分析学(Cryptanalytics)&#xff1a;主要研究加密信息的破译或消息的伪造…