-
Notifications
You must be signed in to change notification settings - Fork 29.7k
Closed
Labels
in triagePresently being triaged by the triage teamPresently being triaged by the triage teamwaiting for customer responseThe Flutter team cannot make further progress on this issue until the original reporter respondsThe Flutter team cannot make further progress on this issue until the original reporter responds
Description
I am trying to make a camera app that has GPS data in its metadata. For that reason, I am using the [image_picker] package. But when I extract the metadata with [exif] package it does not show the GPS properties.
I am writing code like this:
code sample
class MyCamera extends StatefulWidget {
@override
_MyCameraState createState() => _MyCameraState();
}
class _MyCameraState extends State<MyCamera> {
String dirPath = '';
File? imageFile;
_initialImageView() {
if (imageFile == null) {
return const Text(
'No Image Selected...',
style: TextStyle(fontSize: 20.0),
);
} else {
return Card(child: Image.file(imageFile!, width: 400.0, height: 400));
}
}
_openGallery(BuildContext context) async {
var picture = await ImagePicker().pickImage(source: ImageSource.gallery);
setState(() {
imageFile = File(picture!.path);
dirPath = picture.path;
print('path');
print(dirPath);
});
}
_openCamera(BuildContext context) async {
var picture = await ImagePicker().pickImage(source: ImageSource.camera);
var bytes = await picture!.readAsBytes();
var tags = await readExifFromBytes(bytes);
tags.forEach((key, value) => print("$key : $value"));
setState(() {
imageFile = File(picture.path);
dirPath = picture.path;
print('path');
print(dirPath);
});
}
Future<void> _showChoiceDialog(BuildContext context) {
return showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text('Take Image From...'),
content: SingleChildScrollView(
child: ListBody(
children: [
GestureDetector(
child: const Text('Gallery'),
onTap: () {
_openGallery(context);
Navigator.of(context).pop();
},
),
const Padding(padding: EdgeInsets.all(8.0)),
GestureDetector(
child: const Text('Camera'),
onTap: () {
_openCamera(context);
Navigator.of(context).pop();
},
),
],
),
),
);
});
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('View Image'),
),
body: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
_initialImageView(),
Column(
children: [
Container(
margin: const EdgeInsets.symmetric(horizontal: 30.0),
width: 250.0,
child: FlatButton(
child: const Text(
'Select Image',
style: TextStyle(color: Colors.white, fontSize: 16.0),
),
onPressed: () {
_showChoiceDialog(context);
},
),
decoration: BoxDecoration(
color: Colors.blue,
borderRadius: BorderRadius.circular(30.0),
),
),
],
),
],
),
),
);
}
}And these are the metadata I am getting. There is no accurate GPS data. Can you suggest what I am doing wrong?

Metadata
Metadata
Assignees
Labels
in triagePresently being triaged by the triage teamPresently being triaged by the triage teamwaiting for customer responseThe Flutter team cannot make further progress on this issue until the original reporter respondsThe Flutter team cannot make further progress on this issue until the original reporter responds