|
|
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: <Widget>[
|
|
|
Padding(
|
|
|
padding: EdgeInsets.fromLTRB(10, 10, 10, 0),
|
|
|
child: Stack(
|
|
|
children: <Widget>[
|
|
|
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: <Widget>[
|
|
|
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<Coords> waypoints = [
|
|
|
// Coords(37.7705112, -122.4108267),
|
|
|
// Coords(37.6988984, -122.4830961),
|
|
|
// Coords(37.7935754, -122.483654),
|
|
|
];
|
|
|
|
|
|
DirectionsMode directionsMode = DirectionsMode.driving;
|
|
|
|
|
|
List<AvailableMap> 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
|
|
|
}
|
|
|
}
|