vue-amap 定位和逆解码

本文介绍了在Vue项目中如何通过vue-amap插件进行地图定位和地址逆解码操作,包括安装vue-amap库,配置main.js以及在组件内具体使用的方法。

1.安装:

npm install vue-amap --save

2.main.js引入:

import VueAMap from 'vue-amap';
Vue.use(VueAMap);
VueAMap.initAMapApiLoader({
  key: 'key',//自己申请的key
  plugin: ['AMap.Scale', 'AMap.OverView', 'AMap.ToolBar', 'AMap.Geocoder','AMap.Geolocation'],
  v: '1.4.4'
});

3.组件中使用:

<template>
	<div class="hello">
		<el-amap vid="amapDemo" :center="center" :zoom="zoom" :plugin="plugin" :events="events" class="amap-demo">
			<el-amap-marker v-for="(marker, index) in markers" :position="marker.position" :events="marker.events" :visible="marker.visible"
			 :draggable="marker.draggable" :vid="index"></el-amap-marker>
		</el-amap>
		<p>当前经纬度:{
  
  {center}}</p>
		<p>当前地址:{
  
  {formattedAddress}}</p>
	</div>

</template>

<script>
	export default {
		data: function() {
			let self = this
			retur
Vue 中对字符串进行 Base64 解码,可以使用浏览器原生的 `atob()` 方法,也可以使用第三方库如 `CryptoJS` 或 `Buffer`(在 Node.js 环境中)。以下是几种常见的实现方式。 ### 使用原生 `atob()` 方法进行 Base64 解码 浏览器环境提供了 `atob()` `btoa()` 函数,分别用于 Base64 的解码编码。需要注意的是,`atob()` 仅支持 ASCII 字符串的解码,若传入的是 UTF-8 编码的字符串,需要先进行 `decodeURIComponent` 处理。 ```javascript function base64Decode(encodedStr) { try { return decodeURIComponent(atob(encodedStr).split('').map(function(c) { return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2) }).join('')) } catch (e) { console.error('Base64 解码失败', e) return null } } ``` 此方法适用于标准 Base64 编码字符串的解码操作[^1]。 ### 使用 `CryptoJS` 进行 Base64 解码 如果项目中已经引入了 `CryptoJS` 库,也可以使用其内置的 Base64 编解码方法。 ```javascript import CryptoJS from 'crypto-js' function base64Decode(encodedStr) { const decodedWord = CryptoJS.enc.Base64.parse(encodedStr) return decodedWord.toString(CryptoJS.enc.Utf8) } ``` 该方法适用于需要与 AES 等加密算法配合使用的场景,可确保编码解码的兼容性。 ### 使用 `Buffer`(Node.js 环境) 在 Vue 项目中如果使用的是 SSR(服务端渲染)或运行在 Node.js 环境下,可以使用 `Buffer` 对象进行 Base64 解码。 ```javascript function base64Decode(encodedStr) { return Buffer.from(encodedStr, 'base64').toString('utf-8') } ``` 这种方式适用于服务端处理 Base64 数据的情况[^2]。 ### 注意事项 - 如果 Base64 字符串包含前缀(如 `data:application/pdf;base64,`),必须先移除前缀再进行解码,否则会抛出异常。 - 使用 `atob()` 时,若字符串未经过 `encodeURIComponent` 编码,可能会因特殊字符导致解码失败。 ### 示例代码汇总 ```javascript // 原生 atob + decodeURIComponent function nativeBase64Decode(encodedStr) { try { return decodeURIComponent(atob(encodedStr).split('').map(c => '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2) ).join('')) } catch (e) { console.error('Base64 解码失败', e) return null } } // CryptoJS 解码 import CryptoJS from 'crypto-js' function cryptoJsBase64Decode(encodedStr) { const decodedWord = CryptoJS.enc.Base64.parse(encodedStr) return decodedWord.toString(CryptoJS.enc.Utf8) } // Node.js Buffer 解码 function bufferBase64Decode(encodedStr) { return Buffer.from(encodedStr, 'base64').toString('utf-8') } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

vip.khan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值