Hai semuanya pada artikel kali ini kita akan mempelajari tentang geolocator untuk mendapatkan longitude dan latitude, serta kita akan mencoba mendapatkan alamat dari longitude dan latitudenya. Untuk mendapatkan alamat dari longitude dan latitude kita akan menggunakan plugin Geocoding.
Daftar Isi
Project Baru Flutter
membuat project baru pada flutter bisa menggunakan terminal atau visual studio code
flutter create fluttergeo
Tambahkan Dependency yang diperlukan Pada File pubspec.yaml
geolocator: ^9.0.0
geocoding: ^2.0.4
Setting Permission Pada Flutter
Kita perlu menambahkan permission di dalam android/app/src/main/AndroidManifest.xml.
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
Mendapatkan Latitude Dan Longitude
Untuk mendapatkan latitude dan longitude terapkan code di bawah ini :
String location = 'Belum Mendapatkan Lat dan long, Silahkan tekan button'; String address = 'Mencari lokasi...'; //getLongLAT Future<Position> _getGeoLocationPosition() async { bool serviceEnabled; LocationPermission permission; serviceEnabled = await Geolocator.isLocationServiceEnabled(); //location service not enabled, don't continue if (!serviceEnabled) { await Geolocator.openLocationSettings(); return Future.error('Location service Not Enabled'); } permission = await Geolocator.checkPermission(); if (permission == LocationPermission.denied) { permission = await Geolocator.requestPermission(); if (permission == LocationPermission.denied) { return Future.error('Location permission denied'); } } //permission denied forever if (permission == LocationPermission.deniedForever) { return Future.error( 'Location permission denied forever, we cannot access', ); } //continue accessing the position of device return await Geolocator.getCurrentPosition( desiredAccuracy: LocationAccuracy.high, ); }
Menambahkan Ui Geolocator Pada Flutter
Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Koordinat Point',
style: TextStyle(
fontSize: 22.0,
fontWeight: FontWeight.bold,
),
),
SizedBox(
height: 10.0,
),
Text(
location,
style: TextStyle(
fontSize: 12.0,
fontWeight: FontWeight.bold,
),
),
ElevatedButton(
onPressed: () async {
Position position = await _getGeoLocationPosition();
setState(() {
location = '${position.latitude}, ${position.longitude}';
});
},
child: const Text('Get Koordinat'),
),
],
),
),
Output Latitude Dan Longitude

lalu kita klik izinkan untuk mengaktifkan GPS


Get Alamat
Untuk mendapatkan alamat dari latitude dan longitude yang telah di hasilkan, tambahkan code di bawah ini :
Future<void> getAddressFromLongLat(Position position) async {
List<Placemark> placemarks =
await placemarkFromCoordinates(position.latitude, position.longitude);
print(placemarks);
Placemark place = placemarks[0];
setState(() {
address =
'${place.street}, ${place.subLocality}, ${place.locality}, ${place.postalCode}, ${place.country}';
});
}
UI Geocoding Flutter
Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text(
'Koordinat Point',
style: TextStyle(
fontSize: 22.0,
fontWeight: FontWeight.bold,
),
),
SizedBox(
height: 10.0,
),
Text(
location,
style: TextStyle(
fontSize: 12.0,
fontWeight: FontWeight.bold,
),
),
const SizedBox(
height: 20.0,
),
const Text(
'Address',
style: TextStyle(
fontSize: 22.0,
fontWeight: FontWeight.bold,
),
),
SizedBox(height: 10.0,),
Text('${address}'),
ElevatedButton(
onPressed: () async {
Position position = await _getGeoLocationPosition();
setState(() {
location = '${position.latitude}, ${position.longitude}';
});
getAddressFromLongLat(position);
},
child: const Text('Get Koordinat'),
),
],
),
),
Sisipkan code yang ditebalkan, pada code sebelumnya.
Output Final

Untuk artikel kali ini sampai disini dulu, untuk source code lengkapnya ada di link bawah ini:
https://github.com/belajarflutter-com/fluttergeo