当前位置: 首页 > news >正文

前端html,vue使用第三方地图详细教程,以百度地图为例,实现地图标注,导航,定位,路线规划,坐标转换

目录

示例:

准备:

?编辑

开始:

1、新建页面,在script标签中引入百度地图的api数据,把自己在控制台创建的应用的ak替换上去

2、创建一个dom对象,设置宽高

3、在js中初始化地图

进阶:

1、地图标注

2、定位

3、导航

?编辑

4、公交路线规划

6、坐标转化

完整demo代码:


示例:

完整demo截图:

准备:

1、注册百度地图api账号,地址:百度地图开放平台

2、进入控制台 - 应用管理 - 我的应用 - 创建应用,填写相关信息

开始:

1、新建页面,在script标签中引入百度地图的api数据,把自己在控制台创建的应用的ak替换上去
    <script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak=这里替换成自己的ak"></script>
2、创建一个dom对象,设置宽高
<div id="map" class="mapBox"></div>
3、在js中初始化地图
// 初始化地图
initMap(){var map = new BMapGL.Map("map");//绑定创建的dom元素的idvar point = new BMapGL.Point(116.404, 39.915);  // 创建点坐标 map.centerAndZoom(point, 15); // 初始化地图,设置中心点坐标和地图级别map.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放
},

完成以上步骤就能看到基础的一张地图了

进阶:

1、地图标注

实现效果,点击地图弹出弹框,输入信息,添加一个标注点。

要实现该效果首先要监听点击事件

this.map.addEventListener('click', this.addLabel);

点击添加标注点

// 添加地图标点
addLabel(e) {let that = thisvar point =  new BMapGL.Point(e.latlng.lng, e.latlng.lat)var mk = new BMapGL.Marker(point);console.log(mk);this.$prompt('请输入内容', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',}).then(({ value }) => {mk.id = Math.random()*100000000000000000mk.text = value?value:''console.log(mk);this.mkList.push({id:mk.id,text:mk.text,latLng:mk.latLng})this.map.addOverlay(mk);var opts = {width : 200,     // 信息窗口宽度height: 100,     // 信息窗口高度title : "" , // 信息窗口标题message:""}var infoWindow = new BMapGL.InfoWindow(value?value:'', opts);  // 创建信息窗口对象 mk.addEventListener("click", function(e){that.map.openInfoWindow(infoWindow, point); //开启信息窗口});}).catch(() => {});
},

删除标点(根据添加时生成的id去标点集合里匹配,删除对应id 的数据)

// 删除地图标点
deleteLabelById(id){var allOverlay = this.map.getOverlays();for (var i = 0; i < allOverlay.length ; i++){if(allOverlay[i].id&&allOverlay[i].id==id){this.map.removeOverlay(allOverlay[i]);}}
},
2、定位
// 获取定位
var geolocation = new BMapGL.Geolocation();
geolocation.getCurrentPosition(function(r){if(this.getStatus() == BMAP_STATUS_SUCCESS){map.centerAndZoom(r.point, 15); //r.point就是当前定位坐标,设置为地图中心点var mk = new BMapGL.Marker(r.point); map.addOverlay(mk);//添加标点map.panTo(r.point);console.log('您的位置:' + r.point.lng + ',' + r.point.lat);that.city = r.address.citythat.address = `${r.address.province}-${r.address.city}-${r.address.district}-${r.address.street}-${r.address.street_number}号` //中文 详细地址}else {alert('failed' + this.getStatus());} 
});
3、导航

(this.p1是终点坐标,this.p2是起点坐标)

if(this.type==1){// 行车导航路线规划var output = ''this.driving = new BMapGL.DrivingRoute(this.map, {renderOptions:{map: this.map, autoViewport: true},onSearchComplete: function(results){if (that.driving.getStatus() != BMAP_STATUS_SUCCESS){return ;}var plan = results.getPlan(0);output += '总时长:' + plan.getDuration(true);  //获取时间output += '总路程:' + plan.getDistance(true);  //获取距离that.output = outputconsole.log(output)},});// p2,p1为起点和目标点的坐标this.driving.search(this.p2, this.p1);
}else if(this.type==2){// 公交路线规划var output = ''this.transit = new BMapGL.TransitRoute(this.map,{renderOptions: {map: this.map,panel:'panel'},onSearchComplete: function(results){if (that.transit.getStatus() != BMAP_STATUS_SUCCESS){return ;}var plan = results.getPlan(0);output += '总时长:' + plan.getDuration(true);  //获取时间output += '总路程:' + plan.getDistance(true);  //获取距离that.output = outputconsole.log(output)},});this.transit.search(this.p2, this.p1);
}else{// 步行路线规划var output = ''this.walking = new BMapGL.WalkingRoute(this.map, {renderOptions:{map: this.map, autoViewport: true},onSearchComplete: function(results){if (that.walking.getStatus() != BMAP_STATUS_SUCCESS){return ;}var plan = results.getPlan(0);output += '总时长:' + plan.getDuration(true);  //获取时间output += '总路程:' + plan.getDistance(true);  //获取距离that.output = outputconsole.log(output)},});this.walking.search(this.p2, this.p1);
}
4、公交路线规划

注意:公交车导航可以配置以下参数获取公交路线规划

<div id="panel"></div>renderOptions: {map: this.map,panel:'panel'},

6、坐标转化

目前国内主要有以下三种坐标系:

WGS84:为一种大地坐标系,也是目前广泛使用的GPS全球卫星定位系统使用的坐标系。

GCJ02:又称火星坐标系,是由中国国家测绘局制订的地理信息系统的坐标系统。由WGS84坐标系经加密后的坐标系。

BD09:为百度坐标系,在GCJ02坐标系基础上再次加密。其中bd09ll表示百度经纬度坐标,bd09mc表示百度墨卡托米制坐标。

非中国地区地图,服务坐标统一使用WGS84坐标。

百度地图需要用BD09坐标,如果是天地图坐标(WGS84),则需要作转化

WGS84 – 转–> BD09

var convertor = new BMapGL.Convertor();
let point = new BMapGL.Point(intitude,latitude) //intitude,latitude为天地图坐标
convertor.translate([point], COORDINATES_WGS84, COORDINATES_BD09, (data)=>{if(data.status === 0) {let point = data.points[0]if(point){// 此时得到的就是百度地图坐标console.log(point)}}
})

完整demo代码:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>百度地图功能demo</title><link rel="stylesheet" href="/css/element.css"><script src="/js/vue.min.js"></script><script src="/js/element.js"></script><!-- 这里替换成自己的ak --><script type="text/javascript" src="https://api.map.baidu.com/api?v=1.0&&type=webgl&ak='自己的ak'"></script><style>body {margin: 0;box-sizing: border-box;}.mapBox {/* width: calc(100vw - 400px); */flex-grow: 1;height: 100vh;}.leftBox {width: 400px;height: 100vh;box-sizing: border-box;overflow-y: auto;overflow-x: hidden;transition: 0.6s;}.leftBoxHide {width: 0px;height: 100vh;box-sizing: border-box;overflow-y: auto;overflow-x: hidden;transition: 0.6s;}.tool {width: 400px;height: 270px;border-radius: 5px;font-size: 12px;padding: 10px;box-sizing: border-box;}.infoBox {padding: 0 5px;}.icon {position: fixed;bottom: 10px;left: 10px;width: 40px;height: 40px;display: flex;justify-content: center;align-items: center;background-color: #fff;z-index: 99;cursor: pointer;}</style>
</head>
<body><div id="app" style="display: flex;position: relative;"><div class="icon" @click="clickShowTool"><img src="./component.png" alt="" style="width: 30px;height: 30px;"></div><div :class="toolStatus?'leftBox':'leftBoxHide'"><div class="tool"><div><span>当前位置:</span><span v-if="address">{{address}}</span><span v-else>暂无定位</span></div><div v-if="p2" style="padding-top: 10px;">地址坐标:({{p2.lng}},{{p2.lat}})</div><div style="display: flex;align-items: center;padding-top: 10px;"><div>目的地:</div><div><el-input v-model="keyWords" size="small"></el-input></div><div style="margin-left: 10px;"><el-button type="primary" size="small" @click="searchArea">搜索</el-button><el-button type="primary" size="small" @click="searchArea('dh')">导航</el-button></div></div><div style="display: flex;align-items: center;padding-top: 10px;"><div>规划导航路线:</div><div><el-select v-model="type" size="small" placeholder="请选择" @change="change"><el-optionv-for="item in options":key="item.value":label="item.label":value="item.value"></el-option></el-select></div></div><div style="display: flex;align-items: center;padding-top: 10px;"><div>开启/关闭交通流量情况:</div><div><el-switchv-model="switchVal"size="small"@change="changeSwitch"/></div></div><div style="display: flex;align-items: center;padding-top: 10px;"><div>开启/关闭地图标注(<font color="red">单击添加</font>):</div><div><el-switchv-model="mapLabel"size="small"@change="changeSwitchLabel"/></div></div><div style="display: flex;align-items: center;padding-top: 10px;"><div>显示/隐藏地图标注</div><div><el-switchv-model="mapLabel2"size="small"@change="changeSwitchLabel2"/></div></div><div style="padding-top: 10px;" v-if="type==1||type==3">{{output}}</div></div><div class="infoBox"><div id="panel"></div></div></div><div id="map" class="mapBox"></div></div>
</body>
<script>var app = new Vue({el: '#app',data () {return {mapLabel:false,mapLabel2:false,switchVal:false,toolStatus:false,map:null,type:1,p1:null,p2:null,address:'',options:[{label:'行车',value:1},{label:'公交',value:2},{label:'步行',value:3},],output:'',keyWords:'',city:'',driving:null,transit:null,walking:null,mkList:[],}},mounted () {this.initMap()this.mkList = window.localStorage.getItem('nkList')?JSON.parse(window.localStorage.getItem('nkList')):[]// console.log(JSON.parse(this.mkList));let that = thiswindow.addEventListener("beforeunload", function(e) { if(that.mkList.length){window.localStorage.setItem('nkList',JSON.stringify(that.mkList))}});},methods: {// 开启关闭地图标注changeSwitchLabel(e){this.mapLabel = eif(e){// 开启地图点击事件监听this.map.addEventListener('click', this.addLabel);}else{this.map.removeEventListener("click",this.addLabel);}},//显示隐藏地图标注 changeSwitchLabel2(e){this.mapLabel2 = eif(e){// 回显标点let that = thisthis.mkList.forEach((item)=>{var mk = new BMapGL.Marker(item.latLng);mk.id = item.idmk.text = item.textconsole.log(mk);that.map.addOverlay(mk);var opts = {width : 200,     // 信息窗口宽度height: 100,     // 信息窗口高度title : "" , // 信息窗口标题message:""}var infoWindow = new BMapGL.InfoWindow(item.text, opts);  // 创建信息窗口对象 mk.addEventListener("click", function(e){that.map.openInfoWindow(infoWindow, item.latLng); //开启信息窗口});mk.addEventListener('dblclick',function(e){that.p1 = new BMapGL.Point(item.latLng.lng,item.latLng.lat)that.change()})})}else{console.log(this.driving,this.transit,this.walking);this.driving?.clearResults();this.transit?.clearResults();this.walking?.clearResults();console.log(this.driving,this.transit,this.walking);// 删除标点this.mkList.forEach((item)=>{this.deleteLabelById(item.id)})}},// 开启关闭交流流量图changeSwitch(e){console.log(e);this.switchVal = eif(e){this.map.setTrafficOn(); // 添加交通流量图层}else{this.map.setTrafficOff(); // 移除交通流量图层}},// 切换出行路线规划方式change(){console.log(this.p1,this.p2);if(!(this.p1&&this.p2)){return}this.driving?.clearResults();this.transit?.clearResults();this.walking?.clearResults();let that = thisthat.output = ''console.log(this.type);if(this.type==1){// 行车导航路线规划var output = ''this.driving = new BMapGL.DrivingRoute(this.map, {renderOptions:{map: this.map, autoViewport: true},onSearchComplete: function(results){if (that.driving.getStatus() != BMAP_STATUS_SUCCESS){return ;}var plan = results.getPlan(0);output += '总时长:' + plan.getDuration(true);  //获取时间output += '总路程:' + plan.getDistance(true);  //获取距离that.output = outputconsole.log(output)},});// p2,p1为起点和目标点的坐标that.driving.search(this.p2, this.p1);}else if(this.type==2){// 公交路线规划var output = ''this.transit = new BMapGL.TransitRoute(this.map,{renderOptions: {map: this.map,panel:'panel'},onSearchComplete: function(results){if (that.transit.getStatus() != BMAP_STATUS_SUCCESS){return ;}var plan = results.getPlan(0);output += '总时长:' + plan.getDuration(true);  //获取时间output += '总路程:' + plan.getDistance(true);  //获取距离that.output = outputconsole.log(output)},});that.transit.search(this.p2, this.p1);}else{// 步行路线规划var output = ''this.walking = new BMapGL.WalkingRoute(this.map, {renderOptions:{map: this.map, autoViewport: true},onSearchComplete: function(results){if (that.walking.getStatus() != BMAP_STATUS_SUCCESS){return ;}var plan = results.getPlan(0);output += '总时长:' + plan.getDuration(true);  //获取时间output += '总路程:' + plan.getDistance(true);  //获取距离that.output = outputconsole.log(output)},});that.walking.search(this.p2, this.p1);}},// 初始化地图initMap(){let that = thisvar map = new BMapGL.Map("map"); //绑定创建的dom元素的idthat.map = mapmap.enableScrollWheelZoom(true);     //开启鼠标滚轮缩放// 获取定位var geolocation = new BMapGL.Geolocation();geolocation.getCurrentPosition(function(r){if(this.getStatus() == BMAP_STATUS_SUCCESS){console.log(r);that.p2 = r.pointmap.centerAndZoom(r.point, 15);var mk = new BMapGL.Marker(r.point);map.addOverlay(mk);map.panTo(r.point);console.log('您的位置:' + r.point.lng + ',' + r.point.lat);that.city = r.address.citythat.address = `${r.address.province}-${r.address.city}-${r.address.district}-${r.address.street}-${r.address.street_number}号`}else {alert('failed' + this.getStatus());} });console.log(11,map);},// 搜索地区searchArea(i){this.deleteLabelById('searchLabel')this.driving?.clearResults();this.transit?.clearResults();this.walking?.clearResults();if(!this.keyWords)returnlet that = thisconsole.log(this.keyWords);//创建地址解析器实例var myGeo = new BMapGL.Geocoder();// 将地址解析结果显示在地图上,并调整地图视野myGeo.getPoint(this.keyWords, function(point){if(point){that.map.centerAndZoom(point, 16);// //创建地址标注var marker = new BMapGL.Marker(point);  // 创建标注marker.id = 'searchLabel'that.map.addOverlay(marker);that.p1 = pointif(i=='dh'){that.change()}}else{alert('您选择的地址没有解析到结果!');}}, that.city)},// 添加地图标点addLabel(e) {let that = thisvar point =  new BMapGL.Point(e.latlng.lng, e.latlng.lat)var mk = new BMapGL.Marker(point);console.log(mk);this.$prompt('请输入内容', '提示', {confirmButtonText: '确定',cancelButtonText: '取消',}).then(({ value }) => {mk.id = Math.random()*100000000000000000mk.text = value?value:''console.log(mk);this.mkList.push({id:mk.id,text:mk.text,latLng:mk.latLng})this.map.addOverlay(mk);var opts = {width : 200,     // 信息窗口宽度height: 100,     // 信息窗口高度title : "" , // 信息窗口标题message:""}var infoWindow = new BMapGL.InfoWindow(value?value:'', opts);  // 创建信息窗口对象 mk.addEventListener("click", function(e){that.map.openInfoWindow(infoWindow, point); //开启信息窗口});}).catch(() => {});},// 删除地图标点deleteLabelById(id){var allOverlay = this.map.getOverlays();for (var i = 0; i < allOverlay.length ; i++){if(allOverlay[i].id&&allOverlay[i].id==id){this.map.removeOverlay(allOverlay[i]);}}},// 点击显隐工具栏clickShowTool(){console.log('aaa');this.toolStatus = !this.toolStatus}},})
</script>
</html>

相关文章:

前端html,vue使用第三方地图详细教程,以百度地图为例,实现地图标注,导航,定位,路线规划,坐标转换

目录 示例&#xff1a; 准备&#xff1a; ?编辑 开始&#xff1a; 1、新建页面&#xff0c;在script标签中引入百度地图的api数据&#xff0c;把自己在控制台创建的应用的ak替换上去 2、创建一个dom对象&#xff0c;设置宽高 3、在js中初始化地图 进阶&#xff1a; 1…...

【入门】加密四位数

描述 某军事单位用 4 位整数来传递信息&#xff0c;传递之前要求先对这个 4 位数进行加密。加密的方式是每一位都先加上 5 然后对 10 取余数&#xff0c;再将得到的新数颠倒过来。 例如&#xff1a;原数是 1379 &#xff0c;那么每位加 5 对 10 取余数的结果为 6824 &#xf…...

[游戏开发] Unity中使用FlatBuffer

什么是FlatBuffer 为什么用FloatBuffer&#xff0c;优势在哪&#xff1f; 下图是常规使用的各种数据存储类型的性能对比。 对序列化数据的访问不需要打包和拆包——它将序列化数据存储在缓存中&#xff0c;这些数据既可以存储在文件中&#xff0c;又可以通过网络原样传输&…...

云计算IaaS-PaaS-SaaS三种服务模式转至元数据结尾

在当今数字化时代&#xff0c;云计算已经成为推动企业创新与发展的核心力量。而云计算的模型主要有三种&#xff1a;IAAS、PAAS 和 SAAS&#xff0c;它们各自在云计算的庞大体系中扮演着独特且关键的角色&#xff0c;恰似一座大厦的不同楼层&#xff0c;共同构建起强大而灵活的…...

【数据结构——查找】二叉排序树(头歌实践教学平台习题)【合集】

目录&#x1f60b; 任务描述 相关知识 测试说明 我的通关代码: 测试结果&#xff1a; 任务描述 本关任务&#xff1a;实现二叉排序树的基本算法。 相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a;二叉树的创建、查找和删除算法。具体如下&#xff1a; (1)由…...

代码随想录第43天

300.最长递增子序列 # Dynamic programming. class Solution:def lengthOfLIS(self, nums: List[int]) -> int:if not nums: return 0dp [1] * len(nums)for i in range(len(nums)):for j in range(i):if nums[j] < nums[i]: # 如果要求非严格递增&#xff0c;将此行 …...

LeetCode - #158 用 Read4 读取 N 个字符 II

文章目录 摘要描述题目描述方法定义 题解答案题解代码题解代码分析示例测试及结果示例测试代码示例运行结果 时间复杂度空间复杂度总结关于我们 摘要 本文将详细解读一道与文件读取相关的编程问题&#xff1a;如何使用 read4 实现按需读取 n 个字符的 read 方法。我们不仅会提…...

C++(进阶) 第2章 多态

C&#xff08;进阶) 第2章 多态 文章目录 前言一、多态的概念二、多态的定义及实现1.虚函数2.虚函数的重写3.多态的条件4.多态的细节 三、析构函数的重写四、重载/重写/隐藏的对比五、抽象类抽象类 六、相关题目题目1题目2 七、const修饰八、多态原理九、虚函数放在地方总结 前…...

mac删除程序坞(Dock)中“无法打开的程序“

参考&#xff1a; Mac删除软件之后图标还在怎么办&#xff1f;https://blog.csdn.net/weixin_46500474/article/details/124284161Mac程序坞中软件删除出现残留“&#xff1f;”图标无法删除解决方法&#xff1a; https://blog.csdn.net/shenwenhao1990/article/details/12865…...

【Linux】vi/vim 使用技巧

文章目录 1. 简介vi和vim的历史vi和vim的区别安装vimUbuntu/DebianCentOS/RHELFedoramacOSWindows 2. 基本操作启动和退出启动退出 模式介绍普通模式插入模式命令模式 光标移动基本移动高级移动 3. 文本编辑插入文本删除文本复制和粘贴撤销和重做 4. 搜索与替换基本搜索搜索文本…...

Python自动化办公(系统维护及开发任务状态自动推送)

Python自动化办公, 1.需求分析 系统维护及开发人员的工作一般都会比较繁杂,领导们喜欢实时掌控项目的进度,但是领导们很多时候是不会自己主动去查看及分析项目进度数据的,干活的牛马们也没空整天日报,周报,月报,季报,年报…活又有了,又该想想怎么干,需求的核心是实现自动整理…...

CentOS7 Apache安装踩坑

Gnome桌面右键弹出终端。 [rootlocalhost ~]# yum repolist 已加载插件&#xff1a;fastestmirror, langpacks /var/run/yum.pid 已被锁定&#xff0c;PID 为 2611 的另一个程序正在运行。 Another app is currently holding the yum lock; waiting for it to exit... [root…...

OpenMMlab导出MaskFormer/Mask2Former模型并用onnxruntime和tensorrt推理

onnxruntime推理 使用mmdeploy导出onnx模型&#xff1a; from mmdeploy.apis import torch2onnx from mmdeploy.backend.sdk.export_info import export2SDK# img ./bus.jpg # work_dir ./work_dir/onnx/maskformer # save_file ./end2end.onnx # deploy_cfg ./configs/m…...

若依微服务中配置 MySQL + DM 多数据源

文章目录 1、导入 MySQL 和达梦&#xff08;DM&#xff09;依赖2、在 application-druid.yml 中配置达梦&#xff08;DM&#xff09;数据源3、在 DruidConfig 类中配置多数据源信息4、在 Service 层或方法级别切换数据源4.1 在 Service 类上切换到从库数据源4.2 在方法级别切换…...

一些前端组件介绍

wangEditor &#xff1a; 一款开源 Web 富文本编辑器&#xff0c;可用于 jQuery Vue React等 https://www.wangeditor.com/ Handsontable&#xff1a;一款前端可编辑电子表格https://blog.csdn.net/carcarrot/article/details/108492356mitt&#xff1a;Mitt 是一个在 Vue.js 应…...

python学opencv|读取图像(九)用numpy创建黑白相间灰度图

【1】引言 前述学习过程中&#xff0c;掌握了用numpy创建矩阵数据&#xff0c;把所有像素点的BGR取值设置为0&#xff0c;然后创建纯黑灰度图的方法&#xff0c;具体链接为&#xff1a; python学opencv|读取图像&#xff08;八&#xff09;用numpy创建纯黑灰度图-CSDN博客 在…...

AtCoder Beginner Contest 383

C - Humidifier 3 Description 一个 h w h \times w hw 的网格&#xff0c;每个格子可能是墙、空地或者城堡。 一个格子是好的&#xff0c;当且仅当从至少一个城堡出发&#xff0c;走不超过 d d d 步能到达。&#xff08;只能上下左右走&#xff0c;不能穿墙&#xff09;&…...

20. 内置模块

一、random模块 random 模块用来创建随机数的模块。 random.random() # 随机生成一个大于0且小于1之间的小数 random.randint(a, b) # 随机生成一个大于等于a小于等于b的随机整数 random.uniform(a, b) …...

《知识拓展 · 统一建模语言UML》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…...

计算机网络-Wireshark探索ARP

使用工具 Wiresharkarp: To inspect and clear the cache used by the ARP protocol on your computer.curl(MacOS)ifconfig(MacOS or Linux): to inspect the state of your computer’s network interface.route/netstat: To inspect the routes used by your computer.Brows…...

减少30%人工处理时间,AI OCR与表格识别助力医疗化验单快速处理

在医疗行业&#xff0c;化验单作为重要的诊断依据和数据来源&#xff0c;涉及大量的文字和表格信息&#xff0c;传统的手工输入和数据处理方式不仅繁琐&#xff0c;而且容易出错&#xff0c;给医院的运营效率和数据准确性带来较大挑战。随着人工智能技术的快速发展&#xff0c;…...

1.2.3计算机软件

一个完整的计算机系统由硬件和软件组成&#xff0c;用户使用软件&#xff0c;而软件运行在硬件之上&#xff0c;软件进一步的划分为两类&#xff1a;应用软件和系统软件。普通用户通常只会跟应用软件打交道。应用软件是为了解决用户的某种特定的需求而研发出来的。除了每个人都…...

二、uni-forms

避坑指南&#xff1a;uni-forms表单在uni-app中的实践经验-CSDN博客...

Android13开机向导

文章目录 前言需求-场景第三方资料说明需求思路按照平台 思路 从配置上去 feature换个思路&#xff0c;去feature。SimMissingActivity 判断跳过逻辑SetupWizardUtils 判断SIM 、 hasSystemFeature FEATURE_TELEPHONYPackageManager.FEATURE_TELEPHONYApplicationPackageManage…...

软件测试丨Appium 源码分析与定制

在本文中&#xff0c;我们将深入Appium的源码&#xff0c;探索它的底层架构、定制化使用方法和给软件测试带来的优势。我们将详细介绍这些技术如何解决实际问题&#xff0c;并与大家分享一些实用的案例&#xff0c;以帮助读者更好地理解和应用这一技术。 Appium简介 什么是App…...

1.网络知识-IP与子网掩码的关系及计算实例

IP与子网掩码 说实话&#xff0c;之前没有注意过&#xff0c;今天我打开自己的办公地电脑&#xff0c;看到我的网络配置如下&#xff1a; 我看到我的子网掩码是255.255.254.0&#xff0c;我就奇怪了&#xff0c;我经常见到的子网掩码都是255.255.255.0啊&#xff1f;难道公司配…...

Android中Gradle常用配置

前言 本文记录了一些常用的gradle配置&#xff0c;基本上都是平时开发中可能会使用到的&#xff0c;如果有新内容会不定时更新&#xff0c;附官网 1.依赖库版本写法 不推荐写法&#xff1a; dependencies {compile com.example.code.abc:def:2. // 不推荐的写法 }这样写虽然可…...

Linux操作系统3-文件与IO操作2(文件描述符fd与文件重定向)

上篇文章&#xff1a;Linux操作系统3-文件与IO操作1(从C语言IO操作到系统调用)-CSDN博客 本篇代码Gitee仓库&#xff1a;myLerningCode 橘子真甜/Linux操作系统与网络编程学习 - 码云 - 开源中国 (gitee.com) 本篇重点&#xff1a;文件描述符fd与文件重定向 目录 一. 文件描述…...

k8s调度策略

调度策略 binpack&#xff08;装箱策略&#xff09; Binpacking策略&#xff08;又称装箱问题&#xff09;是一种优化算法&#xff0c;用于将物品有效地放入容器&#xff08;或“箱子”&#xff09;中&#xff0c;使得所使用的容器数量最少&#xff0c;Kubernetes等集群管理系…...

uniapp中父组件传参到子组件页面渲染不生效问题处理实战记录

上篇文件介绍了,父组件数据更新正常但是页面渲染不生效的问题,详情可以看下:uniapp中父组件数组更新后与页面渲染数组不一致实战记录 本文在此基础上由于新增需求衍生出新的问题.本文只记录一下解决思路. 下面说下新增需求方便理解场景: 商品信息设置中添加抽奖概率设置…...

手机网站有什么好处/友妙招链接怎么弄

今天碰到了一个超级恶心的问题&#xff0c;BitmapFactory.decodeStream(bis,null,options)一直是返回NULL 问题是这样子的&#xff1a; 1 InputStream is response.body().byteStream();2 Bitmap bm;3 BitmapFactory.Options optionsnew Bit…...

怎样做海外淘宝网站/武汉网站营销seo方案

计算机硬件系统实验报告PAGEPAGE 1计算机硬件系统实验报告RISC模型微处理器设计学 号&#xff1a;姓 名&#xff1a; 陆 二 庆指导教师&#xff1a; 陈智勇 老师专 业&#xff1a; 计算机应用技术日期&#xff1a;2006&#xff0d;10&#xff0d;171 实验题目设计一台RISC模型机…...

黑龙江能源建设网站/最新的疫情情况

jupyter notebook 需要用谷歌浏览器打开才可以&#xff0c;其他的浏览器打开后多半是空白的。添加默认浏览器如下&#xff1a; 1.在anaconda prompt 里面直接输入 jupyter notebook --generate-config 让jupyter生成一个配置文件&#xff0c;生成后你会看到文件地址的2.然后就可…...

网站托管是什么/医院营销策略的具体方法

再游洛带有感——代腾飞 2007年9月15日 于成都今游古镇到洛带恍然忽至回唐朝身穿古装成侠客浪迹江湖甚逍遥...

手机端网站图片上传如何做/南京seo新浪

前言 III族一定是受主吗,V族一定做施主吗? 元素周期表 \;\\\;\\\; III族元素:硼B、铝Al、镓Ga、铟In V族元素:氮N、磷P、砷As、锑Sb...

沉浸式展厅搭建商/厦门seo网站推广优化

PC Access SMART是用于S7-200 SMART的OPC软件。已实现了它自带的客户机测试功能&#xff0c;和组态王与S7-200 SMART CPU的OPC通信。感觉PC Access SMART 有以下优点&#xff1a;1)PC Access V1.0 SP6不能用于Win7&#xff0c;PC Access SMART可用于32位和64位的Win7。PC Acces…...