game_std_view_emap.dart 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import 'layer_cp_start_bubble.dart';
  2. import 'layer_map_ruler.dart';
  3. import 'layer_warn.dart';
  4. import 'layer_compass.dart';
  5. import 'layer_cp_touch.dart';
  6. import 'layer_location.dart';
  7. import '../layer/layer_cp.dart';
  8. import 'layer_front_ui.dart';
  9. import '../layer/layer_map.dart';
  10. import '../layer/layer_map_touch.dart';
  11. import '../layer/layer_trace.dart';
  12. import 'game_std_controller.dart';
  13. class GameStdViewEMap extends LayerView<GameStdController>{
  14. const GameStdViewEMap({super.key});
  15. @override
  16. Widget build(BuildContext context) {
  17. return Obx((){
  18. final children = <Widget>[
  19. const SizedBox(width: double.infinity, height: double.infinity),
  20. ];
  21. if(viewModel.isWidgetInit){
  22. children.add(const LayerMap());
  23. if(viewModel.isShowTrace.value && viewModel.isEnableUserLocationState.value){
  24. children.add(LayerTrace(
  25. onMapTrace: viewModel.instance.myTrace,
  26. color: Colors.red));
  27. }
  28. children.addAll([
  29. LayerCP(
  30. isHideRouteBeforeStart: !viewModel.isEnableRoutePreview.value,
  31. wantList: viewModel.instance.model.controlPointWantSequence,
  32. nextPlanCPIndex: viewModel.instance.model.nextPlanPointIndex.value,
  33. numRadians: viewModel.compassPlantRadian,
  34. ),
  35. const LayerCPStartBubble(),
  36. ]);
  37. if(viewModel.isEnableUserLocationState.value){
  38. children.add(const LayerLocation());
  39. }
  40. children.addAll([
  41. const LayerMapRuler(),
  42. const LayerCompass(),
  43. const LayerWarn(),
  44. const LayerMapTouch(),
  45. const LayerCPTouch(),
  46. const LayerFrontUI(),
  47. ]);
  48. }
  49. return Scaffold(
  50. backgroundColor: const Color(0xffd6d6d6),
  51. body: Stack(
  52. key: viewModel.mapWidgetKey,
  53. alignment: Alignment.topLeft,
  54. children: children
  55. ),
  56. );
  57. });
  58. }
  59. }