geo_tag_camera 1.0.6
geo_tag_camera: ^1.0.6 copied to clipboard
A premium Flutter package for capturing photos with automatic geo-tagging, compass heading, and street address watermarks.
Geo Tag Camera πΈπ
A premium Flutter package providing a fully customizable camera UI for capturing photos with automatic geo-location, compass direction, date, and address watermarks stamped directly onto the image.
π Features #
- β¨ Custom Camera UI: Clean, intuitive preview with tap-to-focus and pinch-to-zoom capabilities.
- π Automatic Watermarking: Automatically reads device GPS and stamps latitude, longitude, and actual street address directly onto your pictures.
- π§ Compass Heading: Real-time magnetometer analysis indicating the direction the camera is facing (N, NW, SE, etc.).
- π Smart Overlays: Built-in Rule of Thirds grid overlay and active device angle sensors (gyroscope alignment) to capture perfect shots.
- π Dedicated Settings UI: A beautiful, full-screen configuration menu divided into logical topics:
- π¨ Layout & Style: Toggle dark/light themes, aspect ratios (16:9, 4:3), watermark sizes, layout corners, and rich typography fonts.
- π Location Content: Individually hide or show street addresses and GPS coordinates based on your privacy needs.
- π Date & Time: Complete control over 12/24 hour parameters along with DD/MM/YYYY, MM/DD/YYYY, and even custom formatting input.
- πΊοΈ Map Overview: Generate an API-Key-Free contextual Mini Map powered natively by OpenStreetMap and ESRI! Place it horizontally on the left or the right side of the watermark box seamlessly!
- π± Cross-Platform: Works right out of the box on both Android & iOS, requesting all the necessary permissions internally.
πΈ Screenshots #
π Installation #
To use geo_tag_camera in your project, add the dependency to your pubspec.yaml file:
dependencies:
geo_tag_camera: ^1.0.6
Then, run:
flutter pub get
π οΈ Usage #
To use the camera feature, simply navigate to the CameraPage. The package will effortlessly handle requesting camera and location permissions from the user.
import 'package:flutter/material.dart';
import 'package:geo_tag_camera/geo_tag_camera.dart';
class MyScreen extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Center(
child: ElevatedButton(
child: const Text("Open Geo Camera"),
onPressed: () async {
// Push the camera page onto the navigation stack
final resultFile = await Navigator.push(
context,
MaterialPageRoute(builder: (_) => const CameraPage()),
);
if (resultFile != null) {
print("Picture saved to: ${resultFile.path}");
}
},
),
),
);
}
}
βοΈ Native Permissions Setup #
Android #
Add these permissions to your android/app/src/main/AndroidManifest.xml:
<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
iOS #
Add these keys to your ios/Runner/Info.plist:
<key>NSCameraUsageDescription</key>
<string>This app needs camera access to capture photos.</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>This app needs access to your location to watermark photos.</string>
<key>NSLocationAlwaysUsageDescription</key>
<string>This app needs access to your location to watermark photos.</string>
π¨βπ» Author #
Built with β€οΈ by Ranjith
If you found this package helpful, consider giving it a β on GitHub and a π on pub.dev!
π License #
This project is licensed under the MIT License - see the LICENSE file for details.
