import 'package:flutter/material.dart'; import 'package:geolocator/geolocator.dart'; import 'package:hyzp_ybqx/components/dioFun.dart'; import 'package:map_launcher/map_launcher.dart'; //import 'package:hyzp_ybqx/widget/player_pro.dart'; import '../../../components/commonFun.dart'; import '../../../services/Storage.dart'; import 'maps_sheet.dart'; //确认对话框 class dwInfoDialog extends Dialog { dwInfoDialog({ @required this.id, this.title = "", @required this.dwIndex, this.content, // 导航相关参数 this.parentContext, this.destinationLatitude, this.destinationLongitude, this.destinationTitle, this.availableMaps, }); int dwIndex; String id; String title; String content; bool ret = false; BuildContext parentContext; @override Widget build(BuildContext context) { getCurrentPosition(); Size mediaSize = MediaQuery.of(context).size; return WillPopScope( child: Material( type: MaterialType.transparency, child: Container( padding: EdgeInsets.only(top: 116), alignment: Alignment(0, -1), color: Colors.black12, child: Container( // height: 260, // width: 300, height: mediaSize.height * 0.51, width: mediaSize.width * 0.95, //color: Colors.white, //Cannot provide both a color and a decoration decoration: BoxDecoration( color: Colors.white, border: Border.all(color: Colors.blue, width: 2.0), borderRadius: BorderRadius.all( Radius.circular(5), ), ), child: Column( children: [ Padding( padding: EdgeInsets.fromLTRB(10, 10, 10, 0), child: Stack( children: [ Align( alignment: Alignment.center, child: Text( "${this.title}", style: TextStyle( fontSize: 20.0, ), ), ), Align( alignment: Alignment.centerRight, child: InkWell( child: Icon(Icons.close), onTap: () { getingDwVideo = false; Navigator.pop(context, ret); }, ), ) ], ), ), Divider(color: Colors.blue), Container( padding: EdgeInsets.fromLTRB(20, 10, 20, 10), width: double.infinity, height: mediaSize.height * 0.28, child: SingleChildScrollView( child: Text(content, style: TextStyle(fontSize: 18.0, color: Colors.blue)), ), ), SizedBox(height: 10), Row( mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ RaisedButton( onPressed: () { ret = true; //getDwspUrl(index: dwIndex, context: context); getDwspUrlNew(indexRecord: dwIndex, context: context); }, child: Text("视频"), ), RaisedButton( onPressed: () async { ret = true; getingDwVideo = false; navigationMap(context); }, child: Text("导航"), ), RaisedButton( child: Text("取消"), onPressed: () async { getingDwVideo = false; Navigator.pop(context, ret); //关闭弹框,返回sRet }, ) ], ), ], ), ), ), ), onWillPop: () { // 屏蔽点击返回键的操作 getingDwVideo = false; Navigator.pop(context, ret); }, ); } // 导航相关代码 double destinationLatitude = 28.45382237207785; double destinationLongitude = 104.7506958256658; String destinationTitle = '珙县大坪上'; double originLatitude; double originLongitude; String originTitle = '我的位置'; List waypoints = [ // Coords(37.7705112, -122.4108267), // Coords(37.6988984, -122.4830961), // Coords(37.7935754, -122.483654), ]; DirectionsMode directionsMode = DirectionsMode.driving; List availableMaps; // String defaultMapName = 'Amap'; String defaultMapName = g_defaultMapName; AvailableMap defalutMap; void getCurrentPosition() async { print('getCurrentPosition begin'); // 是否保存默认地图 g_bSaveDefaultMap = await Storage.getBool('bSaveDefaultMap'); g_bSaveDefaultMap = (null == g_bSaveDefaultMap) ? false : g_bSaveDefaultMap; // 默认不保存 // 用户选择的默认地图名称 g_defaultMapName = await Storage.getString('defaultMapName'); g_defaultMapName = (null == g_defaultMapName) ? '' : g_defaultMapName; // 默认为空字符串 defaultMapName = g_defaultMapName; // 获取用户选择的默认地图 // availableMaps = await MapLauncher.installedMaps; // 为避免延迟错乱,该变量由父组件传入 if (defaultMapName != null && defaultMapName.length > 0) { for (var map in availableMaps) { if (defaultMapName.toLowerCase() == map.mapName.toLowerCase()) { defalutMap = map; break; } } } await Geolocator.getCurrentPosition().then((Position value) { originLatitude = value.latitude; originLongitude = value.longitude; print('value = ${value.toString()}'); // value = Latitude: 28.796201, Longitude: 104.607751 print('getCurrentPosition end'); }); } navigationMap(BuildContext context) { print('this.defalutMap = ${defalutMap}'); if (defalutMap != null) { defalutMap.showDirections( destination: Coords( destinationLatitude, destinationLongitude, ), destinationTitle: destinationTitle, origin: originLatitude == null || originLongitude == null ? null : Coords(originLatitude, originLongitude), originTitle: originTitle, waypoints: waypoints, directionsMode: directionsMode, ); } else { MapsSheet.show( context: parentContext, onMapTap: (map) { if (g_bSaveDefaultMap) { g_defaultMapName = map.mapName; Storage.setString('defaultMapName', g_defaultMapName); } map.showDirections( destination: Coords( destinationLatitude, destinationLongitude, ), destinationTitle: destinationTitle, origin: originLatitude == null || originLongitude == null ? null : Coords(originLatitude, originLongitude), originTitle: originTitle, waypoints: waypoints, directionsMode: directionsMode, ); }, ); } Navigator.pop(context, ret); //关闭弹框,返回sRet } }