Files
kdr_kurir_app_v2/lib/widget/map_dialog.dart

128 lines
4.2 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_map/flutter_map.dart';
import 'package:latlong2/latlong.dart';
import '../app/constant.dart';
typedef void MyFunction();
showMapDialog({
required BuildContext context,
required double lat,
required double long,
required MyFunction confirm,
required MyFunction notConfirm,
required String address,
}) {
return showDialog(
context: context,
builder: (BuildContext context) {
return AlertDialog(
title: Text(
"Konfirmasi lokasi",
style: Constant.body1(context: context),
),
content: SizedBox(
width: Constant.getActualX(context: context, x: 280),
height: Constant.getActualY(context: context, y: 200),
child: SizedBox(
width: Constant.getActualX(context: context, x: 200),
height: Constant.getActualY(context: context, y: 100),
// child: FlutterMap(
// options: MapOptions(
// center: LatLng(lat, long),
// zoom: 16,
// ),
// nonRotatedChildren: [
// Align(
// alignment: Alignment.bottomLeft,
// child: Text(
// address,
// style: Constant.body1(context: context).copyWith(
// backgroundColor: Colors.black.withOpacity(0.5),
// color: Colors.white),
// ),
// ),
// ],
// children: [
// TileLayer(
// urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
// userAgentPackageName: 'com.example.app',
// ),
// MarkerLayer(
// markers: [
// Marker(
// point: LatLng(lat, long),
// width: 100,
// height: 100,
// builder: (context) => const Icon(
// Icons.location_on,
// color: Colors.red,
// size: 50,
// )),
// ],
// ),
// ],
// ),
child: FlutterMap(
options: MapOptions(
initialCenter: LatLng(lat, long),
initialZoom: 16,
),
children: [
TileLayer(
urlTemplate: 'https://tile.openstreetmap.org/{z}/{x}/{y}.png',
userAgentPackageName: 'com.example.app',
),
MarkerLayer(
markers: [
Marker(
point: LatLng(lat, long),
width: 100,
height: 100,
child: const Icon(
Icons.location_on,
color: Colors.red,
size: 50,
),
),
],
),
Align(
alignment: Alignment.bottomLeft,
child: Padding(
padding: const EdgeInsets.all(8.0),
child: Text(
address,
style: Constant.body1(context: context).copyWith(
// backgroundColor: Colors.black.withOpacity(0.5),
backgroundColor: Colors.black.withAlpha(128),
color: Colors.white,
),
),
),
),
],
),
),
),
actions: [
OutlinedButton(
onPressed: () {
Navigator.pop(context);
notConfirm();
},
child: const Text("Ulangi"),
),
SizedBox(width: Constant.getActualX(context: context, x: 5)),
ElevatedButton(onPressed: confirm, child: Text("ya")),
SizedBox(width: Constant.getActualX(context: context, x: 10)),
],
shape: const RoundedRectangleBorder(
borderRadius: BorderRadius.all(Radius.circular(24)),
),
);
},
);
}