vue使用exif获取图片经纬度的示例代码


Posted in Vue.js onDecember 11, 2020

我上一篇文章写了怎么压缩图片和旋转。这篇写一下怎么看图片的经纬度

注意!!!

只有原图有大量的元数据信息。通过拍照软件如:b612等,拍摄的照片是软件处理过的,所以一定要使用原图来擦查询

下面贴以下代码。

<template>
 <div>
  <input type="file" id="upload" accept="image" @change="upload" />
  <span>{{textData}}</span>
 </div>
</template>
<script>
export default {
 data() {
  return {
   picValue: {},
   headerImage: '',
   textData:''
  };
 },
 components: {},
 methods: {
  upload(e) {
   console.log(e);
   let files = e.target.files || e.dataTransfer.files;
   if (!files.length) return;
   this.picValue = files[0];
   this.imgPreview(this.picValue);
  },
  imgPreview(file) {
   let self = this;
   let Orientation;
   //去获取拍照时的信息,解决拍出来的照片旋转问题
   self.EXIF.getData(file, function() {
    Orientation = self.EXIF.getTag(this, 'Orientation');
   });
   // 看支持不支持FileReader
   if (!file || !window.FileReader) return;

   if (/^image/.test(file.type)) {
    // 创建一个reader
    let reader = new FileReader();
    // 将图片2将转成 base64 格式
    reader.readAsDataURL(file);
    // 读取成功后的回调
    reader.onloadend = function() {
     let result = this.result;
     let img = new Image();
     img.src = result;
     self.postImg(file);
    };
   }
  },
  postImg(val) {
   //这里写接口
   let self = this;
   // document.getElementById('upload')
   // this.EXIF.getData(val, function(r) {
   let r = this.EXIF.getAllTags(val);
   const allMetaData = r;
   let direction;
   if (allMetaData.GPSImgDirection) {
    const directionArry = allMetaData.GPSImgDirection; // 方位角
    direction = directionArry.numerator / directionArry.denominator;
   }
   let Longitude;
   if (allMetaData.GPSLongitude) {
    const LongitudeArry = allMetaData.GPSLongitude;
    const longLongitude =
     LongitudeArry[0].numerator / LongitudeArry[0].denominator +
     LongitudeArry[1].numerator / LongitudeArry[1].denominator / 60 +
     LongitudeArry[2].numerator / LongitudeArry[2].denominator / 3600;
    Longitude = longLongitude.toFixed(8);
   }
   let Latitude;
   if (allMetaData.GPSLatitude) {
    const LatitudeArry = allMetaData.GPSLatitude;
    const longLatitude =
     LatitudeArry[0].numerator / LatitudeArry[0].denominator +
     LatitudeArry[1].numerator / LatitudeArry[1].denominator / 60 +
     LatitudeArry[2].numerator / LatitudeArry[2].denominator / 3600;
    Latitude = longLatitude.toFixed(8);
   }
   self.textData = '我是Longitude' + Longitude + ' ====== '+"我是Latitude" + Latitude
   console.log('我进来了', direction, Longitude, Latitude);
   console.log('allMetaData', allMetaData);
   //接口 axios
   // });
  }
 }
};
</script>

这个功能是下载的exif.js文件,也可以通过npm安装依赖。不过都要挂在到原型链上。

以上就是vue使用exif获取图片经纬度的示例代码的详细内容,更多关于vue 获取图片经纬度的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
vue+vant实现购物车全选和反选功能
Nov 17 Vue.js
vue 获取到数据但却渲染不到页面上的解决方法
Nov 19 Vue.js
vue.js watch经常失效的场景与解决方案
Jan 07 Vue.js
基于VUE实现简单的学生信息管理系统
Jan 13 Vue.js
Vue实现图书管理案例
Jan 20 Vue.js
vue登录页实现使用cookie记住7天密码功能的方法
Feb 18 Vue.js
vue3.0封装轮播图组件的步骤
Mar 04 Vue.js
如何理解Vue前后端数据交互与显示
May 10 Vue.js
详解Vue router路由
Nov 20 Vue.js
vue项目中的支付功能实现(微信支付和支付宝支付)
Feb 18 Vue.js
详解Vue中$props、$attrs和$listeners的使用方法
Feb 18 Vue.js
解决vue自定义组件@click点击失效问题
Apr 30 Vue.js
vue使用exif获取图片旋转,压缩的示例代码
Dec 11 #Vue.js
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 #Vue.js
vuex页面刷新导致数据丢失的解决方案
Dec 10 #Vue.js
详解vue-cli项目在IE浏览器打开报错解决方法
Dec 10 #Vue.js
Vue+element-ui添加自定义右键菜单的方法示例
Dec 08 #Vue.js
vue添加自定义右键菜单的完整实例
Dec 08 #Vue.js
vue中如何自定义右键菜单详解
Dec 08 #Vue.js
You might like
PHP中路径问题的解决方案
2006/10/09 PHP
与文件上传有关的php配置参数总结
2013/06/14 PHP
解析PHP提交后跳转
2013/06/23 PHP
php 获取本地IP代码
2013/06/23 PHP
PHP不用递归实现无限分级的例子分享
2014/04/18 PHP
php模拟用户自动在qq空间发表文章的方法
2015/01/07 PHP
Symfony2学习笔记之系统路由详解
2016/03/17 PHP
jQuery.get、jQuery.getJSON、jQuery.post无法返回JSON问题的解决方法
2011/07/28 Javascript
javascript跨域的4种方法和原理详解
2014/04/08 Javascript
详解JavaScript编程中的数组结构
2015/10/24 Javascript
jQuery+css实现的换页标签栏效果
2016/01/27 Javascript
EasyUI布局 高度自适应
2016/06/04 Javascript
javascript 的变量、作用域和内存问题
2017/04/19 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
详解React-Native全球化多语言切换工具库react-native-i18n
2017/11/03 Javascript
彻底理解js面向对象之继承
2018/02/04 Javascript
vue2.0模拟锚点的实例
2018/03/14 Javascript
在小程序Canvas中使用measureText的方法示例
2018/10/19 Javascript
微信小程序使用canvas的画图操作示例
2019/01/18 Javascript
基于vue的验证码组件的示例代码
2019/01/22 Javascript
微信小程序之高德地图多点路线规划过程示例详解
2021/01/18 Javascript
python中的内置函数max()和min()及mas()函数的高级用法
2018/03/29 Python
基于OpenCV python3实现证件照换背景的方法
2019/03/22 Python
selenium处理元素定位点击无效问题
2019/06/12 Python
python无序链表删除重复项的方法
2020/01/17 Python
pycharm使用技巧之自动调整代码格式总结
2020/11/04 Python
phpquery中文手册
2021/03/18 PHP
巴西在线鞋店:Shoestock
2017/10/28 全球购物
6号汽车旅馆预订:Motel 6
2018/02/11 全球购物
重新定义牛仔布,100美元以下:Warp + Weft
2018/07/25 全球购物
幼儿园的门卫岗位职责
2014/04/10 职场文书
单位作风建设剖析材料
2014/10/11 职场文书
2015年社区工会工作总结
2015/05/26 职场文书
如何使用CocosCreator对象池
2021/04/14 Javascript
解决vue $http的get和post请求跨域问题
2021/06/07 Vue.js
Python初识逻辑与if语句及用法大全
2021/08/07 Python