Hai Stanley,
Lokasinya tetap keprint karena secara default settingan dari package Location itu menggunakan akurasi tinggi, sehingga dia akan tetap ke triggered setiap detik karena walaupun diam di satu tempat ada kemungkinan perubahan kecil pada lokasi.
jika kamu memang tidak mau mengikuti settingan default nih, kamu bisa mengatur syarat kapan functionnya ketrigerred dengan mengatur interval (berapa lama sekali dijalankan) dan juga distanceFilter (jarak perubahannya). dengan set nilai tersebut pada LocationService.changeSettings(accuracy: LocationAccuracy.high, interval: 10000, distanceFilter: 50).
dengan menambhakan interval: 10000 dan distanceFilter: 50, maka changeLocation ini akan ter-triggered setiap 10 detik dan ada perubahan jarak minimal 50M dari sebelumnya.
kamu bisa aja hanya menambahkan salah satunya saja, contoh hanya menambahkan interval, sehingga validasinya cuma jalankan setiap 10 detik dengan peripindahan dengan jarak apapun.
contoh code untuk menambakan validasi tersebut:
`@override
void initState() {
_location.requestService().then((serviceEnabled) {
if (serviceEnabled) {
_location.requestPermission().then((permissionStatus) {
if (permissionStatus == PermissionStatus.granted) {
_location.enableBackgroundMode(enable: true);
_location.changeSettings(accuracy: LocationAccuracy.high, interval: 10000, distanceFilter: 50); // ini code yang ditambahkan
_streamSubscription = _location.onLocationChanged.listen((event) {
print(event.latitude);
print(event.longitude);
});
}
});
}
});
super.initState();
}`