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使用element-ui实现表单验证
Dec 13 Vue.js
Vue3 实现双盒子定位Overlay的示例
Dec 22 Vue.js
vue实现登录、注册、退出、跳转等功能
Dec 23 Vue.js
jenkins自动构建发布vue项目的方法步骤
Jan 04 Vue.js
vue+elementui通用弹窗的实现(新增+编辑)
Jan 07 Vue.js
vue组件是如何解析及渲染的?
Jan 13 Vue.js
vue element和nuxt的使用技巧分享
Jan 14 Vue.js
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
使用vue3重构拼图游戏的实现示例
Jan 25 Vue.js
vue使用echarts画组织结构图
Feb 06 Vue.js
vue实现滑动解锁功能
Mar 03 Vue.js
vue选项卡切换的实现案例
Apr 11 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 set_time_limit(0) 设置程序执行时间的函数
2010/05/26 PHP
PHP中::、-&amp;gt;、self、$this几种操作符的区别介绍
2013/04/24 PHP
windows下apache搭建php开发环境
2015/08/27 PHP
PHP中的Session对象如何使用
2015/09/25 PHP
PHP空值检测函数与方法汇总
2017/11/19 PHP
PHP观察者模式定义与用法实例分析
2019/03/22 PHP
图片自动更新(说明)
2006/10/02 Javascript
Jquery作者John Resig自己封装的javascript 常用函数
2009/11/09 Javascript
jquery 圆形旋转图片滚动切换效果
2011/01/19 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
javascript判断非数字的简单例子
2013/07/18 Javascript
JavaScript通过setTimeout实时显示当前时间的方法
2015/04/16 Javascript
js实现延迟加载的方法
2015/06/24 Javascript
JQuery遍历元素的父辈和祖先的方法
2016/09/18 Javascript
JQuery中解决重复动画的方法
2016/10/17 Javascript
Vue.js:使用Vue-Router 2实现路由功能介绍
2017/02/22 Javascript
vue2.0构建单页应用最佳实战
2017/04/01 Javascript
AngularJS中ng-class用法实例分析
2017/07/06 Javascript
layui扩展上传组件模拟进度条的方法
2019/09/23 Javascript
Vue组件模板及组件互相引用代码实例
2020/03/11 Javascript
python操作ie登陆土豆网的方法
2015/05/09 Python
Python 调用 zabbix api的方法示例
2019/01/06 Python
django实现用户注册实例讲解
2019/10/30 Python
Windows系统下pycharm中的pip换源
2020/02/23 Python
Pycharm修改python路径过程图解
2020/05/22 Python
css3 线性渐变和径向渐变示例附图
2014/04/08 HTML / CSS
美国体育用品商店:Rally House(NCAA、NFL、MLB、NBA、NHL和MLS)
2018/01/03 全球购物
宝拉珍选官方旗舰店:2%水杨酸精华液,收缩毛孔粗大和祛痘
2018/07/01 全球购物
自荐信不宜过于夸大
2013/11/06 职场文书
应届毕业生自我评价分享
2013/12/15 职场文书
播音主持专业个人自我评价
2014/01/09 职场文书
2014年党员自我评议(5篇)
2014/09/12 职场文书
2014年大学团支部工作总结
2014/12/02 职场文书
销售督导岗位职责
2015/04/10 职场文书
导游词之永泰公主墓
2019/12/04 职场文书
Redis基本数据类型Set常用操作命令
2022/06/01 Redis