import 'package:geojson/geojson.dart'; import 'package:get/get.dart'; import 'package:rogapp/services/location_service.dart'; class HomeController extends GetxController { List locations = [].obs; List currentFeature = [].obs; @override void onInit() { super.onInit(); LocationService.loadLocations().then((value){ locations.add(value!); }); } GeoJsonFeature? getFeatureForLatLong(double lat, double long){ if(locations.length > 0){ for(GeoJsonFeature i in locations[0].collection){ GeoJsonMultiPoint p = i.geometry as GeoJsonMultiPoint; if(p.geoSerie!.geoPoints[0].latitude == lat && p.geoSerie!.geoPoints[0].longitude == long){ return i; } } } } void makeNext(GeoJsonFeature fs){ GeoJsonFeature pt = fs as GeoJsonFeature; for(int i=0; i<= locations[0].collection.length - 1; i++){ GeoJsonMultiPoint p = locations[0].collection[i].geometry as GeoJsonMultiPoint; if(p.geoSerie!.geoPoints[0].latitude == pt.geometry!.geoSerie!.geoPoints[0].latitude && p.geoSerie!.geoPoints[0].longitude == pt.geometry!.geoSerie!.geoPoints[0].longitude ){ if(currentFeature.length > 0){ currentFeature.clear(); } if(i >= locations[0].collection.length - 1 ){ currentFeature.add(locations[0].collection[0] as GeoJsonFeature); } else{ currentFeature.add(locations[0].collection[i + 1] as GeoJsonFeature); } } } } }