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实现下载文件流完整前后端代码
Nov 17 Vue.js
Vue项目如何引入bootstrap、elementUI、echarts
Nov 26 Vue.js
详解Vue 的异常处理机制
Nov 30 Vue.js
vue+element UI实现树形表格
Dec 29 Vue.js
vue二选一tab栏切换新做法实现
Jan 19 Vue.js
Vue实现图书管理案例
Jan 20 Vue.js
详解实现vue的数据响应式原理
Jan 20 Vue.js
如何在vue 中使用柱状图 并自修改配置
Jan 21 Vue.js
一定要知道的 25 个 Vue 技巧
Nov 02 Vue.js
vue3使用vuedraggable实现拖拽功能
Apr 06 Vue.js
vue数据字典取键值项目的字典问题
Apr 12 Vue.js
vue @click.native 绑定原生点击事件
Apr 22 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读取excel文件示例分享(更新修改excel)
2014/02/27 PHP
ThinkPHP基于PHPExcel导入Excel文件的方法
2014/10/15 PHP
php+ajax无刷新上传图片的实现方法
2016/12/06 PHP
php微信分享到朋友圈、QQ、朋友、微博
2019/02/18 PHP
javascript开发随笔二 动态加载js和文件
2011/11/25 Javascript
Yii-自定义删除确认弹框(zyd)jquery实现代码
2013/03/04 Javascript
JQuery的ON()方法支持的所有事件罗列
2015/02/28 Javascript
举例说明如何为JavaScript的方法参数设置默认值
2015/11/17 Javascript
JavaScript函数内部属性和函数方法实例详解
2016/03/17 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
原生js获取iframe中dom元素--父子页面相互获取对方dom元素的方法
2016/08/05 Javascript
js实现select选择框效果及美化
2016/08/19 Javascript
JS获取年月日时分秒的方法分析
2016/11/28 Javascript
Javarscript中模块(module)、加载(load)与捆绑(bundle)详解
2017/05/28 Javascript
微信小程序使用scroll-view标签实现自动滑动到底部功能的实例代码
2018/11/09 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
layui复选框限制选择个数的方法
2019/09/18 Javascript
vue设置导航栏、侧边栏为公共页面的例子
2019/11/01 Javascript
KnockoutJS数组比较算法实例详解
2019/11/25 Javascript
微信小程序开发之获取用户手机号码(php接口解密)
2020/05/17 Javascript
[43:33]EG vs Spirit Supermajor 败者组 BO3 第一场 6.4
2018/06/05 DOTA
python实现简单登陆流程的方法
2018/04/22 Python
python调用虹软2.0第三版的具体使用
2019/02/22 Python
pytorch 更改预训练模型网络结构的方法
2019/08/19 Python
Django url,从一个页面调到另个页面的方法
2019/08/21 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
2019/11/15 Python
Python利用Scrapy框架爬取豆瓣电影示例
2020/01/17 Python
Python数据正态性检验实现过程
2020/04/18 Python
解决阿里云邮件发送不能使用25端口问题
2020/08/07 Python
python 基于opencv实现图像增强
2020/12/23 Python
基于CSS3实现的几个小loading效果
2018/09/27 HTML / CSS
教师评优事迹材料
2014/01/10 职场文书
12.4全国法制宣传日活动总结
2014/11/01 职场文书
初中信息技术教学计划
2015/01/22 职场文书
五一晚会主持词
2015/07/01 职场文书
公司庆典主持词
2015/07/04 职场文书