百度地图 - 基础学习(2): 地图缩放级别ZOOM的获取和设置
前面在创建地图实例后,对其进行初始化时,调用了BMap.Map.centerAndZoom()方法,该方法接收两个参数:1、中心点坐标Point,2、地图缩放级别zoom(3-19级) 。这里第一次出现zoom。
ZOOM:地图缩放级别,即当前地图区域放大显示的级别,值为3到19的整数。数字越小,地图显示的范围区域越大,但比较模糊,只是一个区域概念,无法具体。反之数字越大,地图显示的范围区域越小,但更详细,更精确。
that.mapInstance.centerAndZoom( new BMap.Point(r.longitude, r.latitude), 13 // 这里的13就是初始化时设置的zoom ); // 地图初始化,设置中心点坐标(本地)和地图缩放比例。Point也可以设定为一个固定值,如天安门()
1、获取当前ZOOM:
// 获取地图当前缩放级别Zoom getZoom() { return this.mapInstance.getZoom(); // 前面地图初始化时已获取map实例(this.mapInstance),故这里直接通过api获取 }
,若后续地图操作和交互中并未修改过zoom值,则此时获取的zoom为地图初始化时的zoom。修改过的zoom值,则获取的是修改过后的值。
2、设置ZOOM:
// 设置地图缩放级别Zoom setZoom(newZoom) { this.mapInstance.setZoom(newZoom); // 前面地图初始化时已获取map实例,故这里直接通过api设置。 // setZoom方法接受正整数(3~19)或小数(3.0~19.0),虽然接受小数,实际上是取了整的,按整数设置。故最好输入正整数 },
3、总结:实际开发过程中,可能不会如此单调的直接调用两个API,更多的估计是通过这两个API进行地图适度的放大和缩小,如:搜索某具体地址时,通过给zoom设置一个较大值,从而将地图放大,以求显示得更精确;同理在搜索一个较大区域时,将zoom值变小,从而使得地图可以显示更大的区域。
组件源码备份:
<template> <el-row class="el-col el-col-24 queryPar-form-wrapper"> <el-form class="el__form-queryPar" ref="ruleForm" label-position="top" :model="ruleForm" > <el-form-item prop="mapZoom"> <el-input type="text" placeholder="请输入地图缩放级别,区间为3~19" v-model.trim="ruleForm.mapZoom" ></el-input> </el-form-item> </el-form> <el-row class="el-col el-col-24 queryPar-button-wrapper"> <el-button class="el-button-fun" @click.stop="setZoom('setZoom', ruleForm.mapZoom)" >设置级别</el-button > <el-button class="el-button-fun" @click.stop="setZoom('amplification')" >放大一级</el-button > </el-row> <el-row class="el-col el-col-24 queryPar-button-wrapper"> <el-button class="el-button-fun" @click.stop="setZoom('narrow')" >缩小一级</el-button > <el-button class="el-button-fun" @click.stop="getZoom('current')" >获取当前ZOOM</el-button > </el-row> <el-row class="el-col el-col-24 font-size16" v-if="currentZoom"> <label class="color-b2aead">当前地图缩放级别为:</label> <label class="color-568dfd">{{ currentZoom ? currentZoom : "" }}</label> </el-row> </el-row> </template> <script> export default { name: "mapZoom", props: { mapInstance: { type: Object, required: true, default: () => { return {}; } } }, data() { return { ruleForm: { mapZoom: null }, currentZoom: null }; }, methods: { // 设置地图缩放级别Zoom setZoom(type, zoom) { let newZoom = 0; switch (type) { case "amplification": { newZoom = this.getZoom() + 1; break; } case "narrow": { newZoom = this.getZoom() - 1; break; } case "setZoom": { if (zoom) { newZoom = Number(zoom); } else { return; } break; } } this.currentZoom = null; this.mapInstance.setZoom(newZoom); // 前面地图初始化时已获取map实例,故这里直接通过api设置。 // setZoom方法接受正整数(3~19)或小数(3.0~19.0),虽然接受小数,实际上是取了整的,按整数设置。故最好输入正整数 }, // 获取地图当前缩放级别Zoom getZoom(type) { let tempZoom = this.mapInstance.getZoom(); // 前面地图初始化时已获取map实例(this.mapInstance),故这里直接通过api获取 if (!type) { return tempZoom; } else { this.currentZoom = tempZoom; } } } }; </script> <style scoped> .el__form-queryPar >>> .el-form-item__content { width: 100%; } .queryPar-button-wrapper, .font-size16 { margin-top: 10px; } </style>
分类:
百度地图
posted on 2021-01-04 10:27 第七穿插连第XX名士兵 阅读(6476) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· winform 绘制太阳,地球,月球 运作规律
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· 写一个简单的SQL生成工具