我正在开发一个网站,人们可以在这里上传图像并标记位置。我依赖这些exif信息来让用户更容易使用。直到最近,这在安卓系统上一直有效,但现在已经不起作用了。我已经调试过了,我可以读取exif,但位置信息似乎已经被删除了。如果我把图像移到我的电脑上,它仍然可以正常工作(仍然是完全相同的网站(,我可以阅读GPS坐标。
所以我猜安卓系统已经升级了,在通过"选择图像"对话框/选择器拾取图像时,不知何故限制了这一点。
我是否可以通过代码或指示用户在android中启用它来重新启用它?
我使用一个简单的html文件输入(使用angular(和exifjs:
<label class="btn btn-primary">
Upload image
<input #file type="file"
[accept]="allowedFileTypes" name="file" hidden (change)="onFileChange(file.files)" multiple />
</label>
它适用于除android之外的其他环境。
更新:
似乎当我去掉[accept]=";allowedFileTypes";我能让它发挥作用。我只接受了jpeg和png,这似乎是在android中打开的一种图像选择器。接受所有文件,打开一种文件选择器,它在设计上与图像选择器有很大不同,还包括gps exif位置。
由于我只对图像感兴趣,所以我只想启用拾取图像。你知道为什么在拾取图像而不是文件时缺少exif gps位置吗?
更新2:
好的,当只挑选照片时,gps信息似乎并没有完全丢失。它在那里,但所有值(GPSLatitude和GPSLongitude(都是0(零(,包括导致值变为NaN的分母。
最近在2023年遇到了同样的问题。安卓系统默认的"图像"选择器似乎出于某种隐私原因阻止了GPS exif。作为一种变通方法,只需不限制接受的文件类型,这将调用android文件资源管理器。
通过android文件浏览器,GPS exif可以毫无问题地传递到浏览器。您所需要做的就是创建文件类型异常处理前端,也许还有后端。