57 lines
1.6 KiB
Dart
57 lines
1.6 KiB
Dart
import 'package:get/get.dart';
|
|
import 'package:google_maps_flutter/google_maps_flutter.dart';
|
|
import 'package:google_polyline_algorithm/google_polyline_algorithm.dart';
|
|
import 'package:ride/constant/colors.dart';
|
|
|
|
import '../../../constant/credential.dart';
|
|
import '../../../constant/links.dart';
|
|
import '../../functions/crud.dart';
|
|
|
|
class MapDirction extends GetxController {
|
|
bool isLoading = true;
|
|
List data = [];
|
|
LatLngBounds? boundsdata;
|
|
|
|
final List<LatLng> polylineCoordinates = [];
|
|
List<Polyline> polyLines = [];
|
|
|
|
getMap(LatLng origin, destination) async {
|
|
isLoading = false;
|
|
|
|
update();
|
|
|
|
var url =
|
|
('${AppLink.googleMapsLink}directions/json?&language=en&avoid=tolls|ferries&destination=$destination&origin=$origin&key=${AppCredintials.mapAPIKEY}');
|
|
|
|
var response = await CRUD().getGoogleApi(link: url, payload: {});
|
|
data = response['routes'][0]['legs'];
|
|
print(data);
|
|
final points =
|
|
decodePolyline(response["routes"][0]["overview_polyline"]["points"]);
|
|
for (int i = 0; i < points.length; i++) {
|
|
double lat = points[i][0].toDouble();
|
|
double lng = points[i][1].toDouble();
|
|
polylineCoordinates.add(LatLng(lat, lng));
|
|
}
|
|
if (polyLines.isNotEmpty) {
|
|
// clearPolyline();
|
|
} else {
|
|
var polyline = Polyline(
|
|
polylineId: PolylineId(response["routes"][0]["summary"]),
|
|
points: polylineCoordinates,
|
|
width: 10,
|
|
color: AppColor.blueColor,
|
|
);
|
|
|
|
// polyLines.add(polyline);
|
|
// rideConfirm = false;
|
|
update();
|
|
}
|
|
}
|
|
|
|
@override
|
|
void onInit() {
|
|
super.onInit();
|
|
}
|
|
}
|