You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

1204 lines
51 KiB

// import 'dart:convert';
// import 'dart:io';
// import 'dart:ui';
// import 'package:flutter/cupertino.dart';
// import 'package:flutter/material.dart';
//
// import 'package:flutter_easyloading/flutter_easyloading.dart';
// import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
// import 'package:huixiang/utils/flutter_utils.dart';
// import 'package:huixiang/utils/font_weight.dart';
// import 'package:huixiang/utils/location.dart';
// import 'package:flutter_screenutil/flutter_screenutil.dart';
// import 'package:permission_handler/permission_handler.dart';
// import 'package:url_launcher/url_launcher.dart';
//
// import '../generated/l10n.dart';
// import '../retrofit/data/store_info.dart';
// import '../view_widget/custom_image.dart';
// import '../view_widget/location_tips.dart';
// import '../view_widget/round_button.dart';
//
// class LocationMap extends StatefulWidget {
// final Map<String, dynamic> arguments;
//
// LocationMap({this.arguments});
//
// @override
// State<StatefulWidget> createState() {
// return _LocationMap();
// }
// }
//
// class _LocationMap extends State<LocationMap> with WidgetsBindingObserver {
// StoreInfo storeInfo;
// int navigationState = 0;
// double distance;
// int navigationType = 0;
// bool positionSorta = false;
// String myAddress;
// String myCity;
// String hours;
// String minutes;
// String polylineId;
// bool _isShowLocalTips = false;
//
// @override
// void initState() {
// super.initState();
// WidgetsBinding.instance.addObserver(this);
// storeInfo = widget.arguments["storeInfo"];
// distance = widget.arguments["distance"];
// getLocation();
// }
//
// void getLocation() async {
// bool powerFlag = false;
// try {
// Future.delayed(Duration(seconds: 5), () {
// LocationInstance.getInstance().stopLocation();
// });
// powerFlag = await LocationInstance.getInstance().startLocation(context,
// (BaiduLocation result) {
// if (result != null &&
// result.latitude != null &&
// result.longitude != null) {
// print("location: $result");
// myLatLng = Latlng(result.latitude, result.longitude);
// myAddress = result.locationDetail;
// myCity = result.city;
// if (distance == null) calculate();
// // AppUtils.coordConvert(myLatLng).then((value) {
// // this.myLatLng = value;
// locationShow();
// // });
// LocationInstance.getInstance().stopLocation();
// }
// });
// } finally {
// if (!powerFlag) {
// if (await Permission.locationWhenInUse.status.isGranted) {
// getLocation();
// } else {
// _isShowLocalTips = true;
// }
// // else {
// // SmartDialog.showToast("您定位服务未开启,请前往系统设置中开启定位服务",
// // alignment: Alignment.center);
// // }
// }
// setState(() {});
// }
// }
//
// calculate() async {
// Latlng bmfCoordinate = Latlng(
// double.tryParse(storeInfo.latitude),
// double.tryParse(storeInfo.longitude),
// );
// distance = double.tryParse(
// await AppUtils.calculateDistance(bmfCoordinate, myLatLng, isMi: true));
// }
//
// locationShow() {
// BMFLocation location = BMFLocation(
// coordinate: myLatLng,
// altitude: 0,
// horizontalAccuracy: 5,
// verticalAccuracy: -1.0,
// speed: -1.0,
// course: -1.0,
// );
// BMFUserLocation userLocation = BMFUserLocation(
// location: location,
// );
// setState(() {
// _mapController.updateLocationData(userLocation);
// });
// }
//
// @override
// void dispose() {
// WidgetsBinding.instance.removeObserver(this);
// LocationInstance.getInstance().stopLocation();
// super.dispose();
// }
//
// @override
// void didChangeAppLifecycleState(AppLifecycleState state) {
// if (state == AppLifecycleState.resumed) {
// // 处理应用程序切换回前台的逻辑
// permissionSettings();
// } else if (state == AppLifecycleState.paused) {
// // 处理应用程序切换到后台的逻辑
// }
// }
//
// void permissionSettings() async {
// if (_isShowLocalTips && await Permission.location.isGranted) {
// _isShowLocalTips = false;
// getLocation();
// }
// }
//
// @override
// Widget build(BuildContext context) {
// return Scaffold(
// // appBar: MyAppBar(
// // background: Color(0xFFF7F7F7),
// // title: widget.arguments["storeName"],
// // titleColor: Colors.black87,
// // titleSize: 18.sp,
// // leadingColor: Colors.black,
// // ),
// body: Stack(
// children: [
// Stack(
// children: [
// Column(
// children: [
// Expanded(
// child: Container(
// //BMFMapWidget 组件会自动默认沾满全屏,并且挡住所有遮盖物 ,BMFTextureMapWidget不会强制遮盖其他控件。
// child: (Platform.isAndroid)
// ? BMFTextureMapWidget(
// mapOptions: BMFMapOptions(
// center: Latlng(
// double.tryParse(widget.arguments["lat"]),
// double.tryParse(widget.arguments["lng"]),
// ),
// showZoomControl: false,
// showMapScaleBar: false,
// rotateEnabled: false,
// zoomLevel: 15,
// ),
// onBMFMapCreated: onMapCreated,
// )
// : BMFMapWidget(
// mapOptions: BMFMapOptions(
// center: Latlng(
// double.tryParse(widget.arguments["lat"]),
// double.tryParse(widget.arguments["lng"]),
// ),
// showZoomControl: false,
// showMapScaleBar: false,
// rotateEnabled: false,
// zoomLevel: 15,
// ),
// onBMFMapCreated: onMapCreated,
// )),
// flex: 3,
// ),
// navigationState == 0
// ? Container(
// height: 253.h,
// padding: EdgeInsets.only(
// top: 16.h, left: 16.w, right: 28.w),
// decoration: BoxDecoration(
// color: Colors.white,
// boxShadow: [
// BoxShadow(
// color: Color(0x08213303),
// offset: Offset(0, 2),
// blurRadius: 4,
// spreadRadius: 0,
// ),
// ],
// borderRadius: BorderRadius.vertical(
// top: Radius.circular(8),
// ),
// ),
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Expanded(
// child: Row(
// children: [
// Expanded(
// child: Column(
// children: [
// Text(
// storeInfo?.storeName ?? "",
// overflow: TextOverflow.ellipsis,
// style: TextStyle(
// fontSize: 20.sp,
// color: Color(0xFF0D0D0D),
// fontWeight: MyFontWeight.medium,
// ),
// ),
// Row(
// children: [
// Text(
// S.of(context).ren(
// storeInfo != null
// ? storeInfo
// .perCapitaConsumption
// : "",
// ),
// overflow: TextOverflow.ellipsis,
// style: TextStyle(
// fontSize: 12.sp,
// fontWeight:
// MyFontWeight.regular,
// color: Color(0xFF4D4D4D),
// ),
// ),
// SizedBox(
// width: 20.w,
// ),
// ]..addAll(itemServer(
// storeInfo != null
// ? storeInfo.businessService
// : "")),
// ),
// Text(
// S.of(context).yingyeshijian(storeInfo ==
// null
// ? ""
// : (storeInfo.openStartTime ==
// null &&
// storeInfo.openEndTime ==
// null)
// ? S.of(context).quantian
// : "${storeInfo.openStartTime.substring(0, storeInfo.openStartTime.lastIndexOf(":"))} "
// "- ${storeInfo.openEndTime.substring(0, storeInfo.openEndTime.lastIndexOf(":"))}"),
// style: TextStyle(
// color: Color(0xFF4D4D4D),
// fontWeight: MyFontWeight.medium,
// fontSize: 12.sp,
// ),
// ),
// ],
// mainAxisAlignment:
// MainAxisAlignment.spaceAround,
// crossAxisAlignment:
// CrossAxisAlignment.start,
// ),
// ),
// MImage(
// storeInfo != null ? storeInfo.logo : "",
// width: 72.h,
// height: 72.h,
// fit: BoxFit.cover,
// errorSrc: "assets/image/default_1.webp",
// fadeSrc: "assets/image/default_1.webp",
// ),
// ],
// ),
// ),
// Padding(
// padding: EdgeInsets.only(bottom: 32.h),
// child: Text(
// "${storeInfo != null ? storeInfo.address : ""}",
// maxLines: 2,
// textAlign: TextAlign.justify,
// style: TextStyle(
// color: Color(0xFF353535),
// fontWeight: MyFontWeight.regular,
// fontSize: 12.sp,
// ),
// ),
// ),
// GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// if (myLatLng == null) {
// // onOpenBaiduMap();
// SmartDialog.showToast(
// "您定位服务未开启,请前往系统设置中开启定位服务",
// alignment: Alignment.center);
// } else {
// navigationState = 1;
// if ((distance ?? 0) < 500)
// navigationType = 1;
// else if ((distance ?? 0) < 1500)
// navigationType = 2;
// else
// navigationType = 4;
// navigationPosition();
// }
// },
// child: Container(
// alignment: Alignment.center,
// width: double.infinity,
// padding: EdgeInsets.symmetric(vertical: 10.h),
// margin: EdgeInsets.only(bottom: 30.h),
// decoration: BoxDecoration(
// color: Color(0xFF32A060),
// borderRadius: BorderRadius.circular(23),
// ),
// child: Text(
// "到这去",
// style: TextStyle(
// fontSize: 20.sp,
// color: Colors.white,
// fontWeight: MyFontWeight.medium,
// ),
// ),
// ),
// )
// ],
// ),
// )
// : navigationDistance(),
// ],
// ),
// navigationState == 0
// ? GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// Navigator.of(context).pop();
// },
// child: Container(
// height: 56.h,
// margin: EdgeInsets.only(
// top: MediaQuery.of(context).padding.top + 16.h,
// left: 14.w,
// right: 14.w),
// padding: EdgeInsets.only(left: 12.w, right: 21.w),
// decoration: BoxDecoration(
// color: Colors.white,
// boxShadow: [
// BoxShadow(
// color: Color(0x08213303),
// offset: Offset(0, 2),
// blurRadius: 4,
// spreadRadius: 0,
// ),
// ],
// borderRadius: BorderRadius.circular(6),
// ),
// child: Row(
// children: [
// Icon(
// Icons.arrow_back_ios,
// color: Color(0xFF353535),
// size: 24,
// ),
// Expanded(
// child: Text(
// storeInfo?.storeName ?? "",
// overflow: TextOverflow.ellipsis,
// style: TextStyle(
// color: Color(0xFF0D0D0D),
// fontSize: 18.sp,
// fontWeight: MyFontWeight.regular,
// ),
// ))
// ],
// ),
// ),
// )
// : navigationBox(),
// ],
// ),
// if (_isShowLocalTips)
// Padding(
// padding: EdgeInsets.only(top: MediaQuery.of(context).padding.top),
// child: LocationTips(() {
// setState(() {
// _isShowLocalTips = false;
// });
// }),
// )
// ],
// ),
// );
// }
//
// void onOpenBaiduMap() async {
// launch(
// "baidumap://map/marker?location=${storeInfo.latitude},${storeInfo.longitude}&title=${storeInfo.storeName}&content=${storeInfo.storeName}&traffic=on&src=andr.baidu.openAPIdemo&coord_type=gcj02");
// }
//
// //調取百度地圖APP
// void onOpenBaiduMapRoute() async {
// // 我的位置
// Latlng startCoord = Latlng(
// positionSorta == false
// ? myLatLng.latitude
// : latLng.latitude,
// positionSorta == false
// ? myLatLng.longitude
// : latLng.longitude);
// String startName = ((positionSorta == false) ? "我的位置" : "终点");
// // 去的位置
// String endName = ((positionSorta == false) ? "终点" : "我的位置");
// Latlng endCoord = Latlng(
// positionSorta == false
// ? latLng.latitude
// : myLatLng.latitude,
// positionSorta == false
// ? latLng.longitude
// : myLatLng.longitude);
// BMFOpenRouteOption routeOption = BMFOpenRouteOption(
// startCoord: startCoord,
// startName: startName,
// endCoord: endCoord,
// endName: endName,
// routeType: navigationType == 1
// ? BMFOpenRouteType.WalkingRoute
// : navigationType == 2
// ? BMFOpenRouteType.WalkingRoute
// : navigationType == 3
// ? BMFOpenRouteType.TransitRoute
// : BMFOpenRouteType.DrivingRoute,
// appScheme: 'baidumapsdk_flutter://mapsdk.baidu.com',
// // 指定返回自定义scheme
// isSupportWeb: true);
// BMFOpenErrorCode flag =
// await BMFOpenMapUtils.openBaiduMapRoute(routeOption);
// print('open - route - errorCode = $flag');
// }
//
// updateMapLine(List<Latlng> coordinates, int needHours, int needMinutes,
// double needDistance) {
// try {
// //刪除之前的創建的點和綫
// _mapController.cleanAllMarkers();
// if (polylineId != null) _mapController.removeOverlay(polylineId);
//
// /// 创建polyline
// BMFPolyline colorsPolyline = BMFPolyline(
// // id: polylineOptions.hashCode.toString(),
// coordinates: coordinates,
// indexs: [0],
// textures: [
// navigationType != 4
// ? 'assets/image/traffic_texture_unknown.png'
// : 'assets/image/traffic_texture_smooth.png'
// ],
// width: Platform.isAndroid ? 16 : 10,
// lineDashType: BMFLineDashType.LineDashTypeNone,
// lineCapType: BMFLineCapType.LineCapButt,
// lineJoinType: BMFLineJoinType.LineJoinRound);
// polylineId = colorsPolyline.id;
//
// /// 添加polyline
// _mapController.addPolyline(colorsPolyline);
// var startBmfMarker = BMFMarker.icon(
// position: Latlng(
// coordinates.first.latitude, coordinates.first.longitude),
// centerOffset: BMFPoint(0.5, 0.7),
// enabled: false,
// icon: "assets/image/icon_start.png",
// draggable: false,
// );
// _mapController.addMarker(startBmfMarker);
//
// var terminalBmfMarker = BMFMarker.icon(
// position: Latlng(
// coordinates.last.latitude, coordinates.last.longitude),
// centerOffset: BMFPoint(0.5, 0.7),
// enabled: false,
// icon: "assets/image/icon_end.png",
// draggable: false,
// );
// _mapController.addMarker(terminalBmfMarker);
//
// double maxLatitude = 0,
// minLatitude = 0,
// maxLongitude = 0,
// minLongitude = 0;
// coordinates.forEach((element) {
// if (element.latitude > maxLatitude) maxLatitude = element.latitude;
// if (minLatitude == 0)
// minLatitude = element.latitude;
// else if (element.latitude < minLatitude) minLatitude = element.latitude;
//
// if (element.longitude > maxLongitude) maxLongitude = element.longitude;
// if (minLongitude == 0)
// minLongitude = element.longitude;
// else if (element.longitude < minLongitude)
// minLongitude = element.longitude;
// });
// _mapController.setVisibleMapBounds(
// BMFCoordinateBounds(
// northeast: Latlng(
// maxLatitude + ((maxLatitude - minLatitude) * 0.8),
// maxLongitude + ((maxLongitude - minLongitude) / 2)),
// southwest: Latlng(
// minLatitude - ((maxLatitude - minLatitude) * 0.2),
// minLongitude - ((maxLongitude - minLongitude) / 2))),
// true);
//
// hours = needHours == 0 ? "" : "$needHours小时";
// minutes = needMinutes == 0 ? "" : "$needMinutes分钟";
// distance = needDistance;
// } finally {
// setState(() {});
// EasyLoading.dismiss();
// }
// }
//
// navigationPosition() async {
// EasyLoading.show(
// status: S.current.zhengzaijiazai, maskType: EasyLoadingMaskType.black);
// BMFPlanNode from = BMFPlanNode(
// cityName: positionSorta == false ? myCity : (storeInfo?.city ?? ""),
// name: positionSorta == false ? myAddress : storeInfo?.address ?? "",
// pt: positionSorta == false
// ? Latlng(myLatLng?.latitude ?? 0, myLatLng?.longitude ?? 0)
// : latLng);
// BMFPlanNode to = BMFPlanNode(
// // cityName: positionSorta == false ? (storeInfo?.city ?? "") : myCity,
// // name: positionSorta == false ? (storeInfo?.address ?? "") : myAddress,
// pt: positionSorta == false
// ? latLng
// : Latlng(myLatLng?.latitude ?? 0, myLatLng?.longitude ?? 0));
// if (navigationType == 1) {
// //步行
// BMFWalkingRoutePlanOption walkingRoutePlanOption =
// BMFWalkingRoutePlanOption(from: from, to: to);
// // 检索实例
// BMFWalkingRouteSearch walkingRouteSearch = BMFWalkingRouteSearch();
// // 检索回调
// walkingRouteSearch.onGetWalkingRouteSearchResult(callback:
// (BMFWalkingRouteResult result, BMFSearchErrorCode errorCode) async {
// if (errorCode == BMFSearchErrorCode.RESULT_NOT_FOUND) {
// SmartDialog.showToast("该方案暂无可用的规划路线", alignment: Alignment.center);
// EasyLoading.dismiss();
// return;
// } else if (errorCode != BMFSearchErrorCode.NO_ERROR) {
// SmartDialog.showToast("获取路线规划失败,请稍后再试", alignment: Alignment.center);
// EasyLoading.dismiss();
// return;
// }
// print(
// '`步行检索回调 errorCode = ${errorCode} \n result = ${result?.toMap()}');
//
// /// 坐标点
// List<Latlng> coordinates = [];
// result.routes.first.steps.forEach((e1) {
// e1.points.forEach((e2) {
// coordinates.add(Latlng(e2.latitude, e2.longitude));
// });
// });
// updateMapLine(
// coordinates,
// result.routes.first.duration.hours,
// result.routes.first.duration.minutes,
// result.routes.first.distance.toDouble());
// });
// bool flag =
// await walkingRouteSearch.walkingRouteSearch(walkingRoutePlanOption);
// } else if (navigationType == 2) {
// //骑行
// BMFRidingRoutePlanOption ridingRoutePlanOption =
// BMFRidingRoutePlanOption(from: from, to: to);
// BMFRidingRouteSearch ridingRouteSearch = BMFRidingRouteSearch();
// ridingRouteSearch.onGetRidingRouteSearchResult(callback:
// (BMFRidingRouteResult result, BMFSearchErrorCode errorCode) {
// if (errorCode == BMFSearchErrorCode.RESULT_NOT_FOUND) {
// SmartDialog.showToast("该方案暂无可用的规划路线", alignment: Alignment.center);
// EasyLoading.dismiss();
// return;
// } else if (errorCode != BMFSearchErrorCode.NO_ERROR) {
// SmartDialog.showToast("获取路线规划失败,请稍后再试", alignment: Alignment.center);
// EasyLoading.dismiss();
// return;
// }
// print(
// '`骑行检索回调 errorCode = ${errorCode} \n result = ${result?.toMap()}');
//
// /// 坐标点
// List<Latlng> coordinates = [];
// result.routes.first.steps.forEach((e1) {
// e1.points.forEach((e2) {
// coordinates.add(Latlng(e2.latitude, e2.longitude));
// });
// });
// updateMapLine(
// coordinates,
// result.routes.first.duration.hours,
// result.routes.first.duration.minutes,
// result.routes.first.distance.toDouble());
// });
// // 发起检索
// bool flag =
// await ridingRouteSearch.ridingRouteSearch(ridingRoutePlanOption);
// } else if (navigationType == 3) {
// //公交
// BMFTransitRoutePlanOption transitRoutePlanOption =
// BMFTransitRoutePlanOption(from: from, to: to, city: '武汉市');
// BMFTransitRouteSearch transitRouteSearch = BMFTransitRouteSearch();
// transitRouteSearch.onGetTransitRouteSearchResult(callback:
// (BMFTransitRouteResult result, BMFSearchErrorCode errorCode) {
// if (errorCode == BMFSearchErrorCode.RESULT_NOT_FOUND) {
// SmartDialog.showToast("该方案暂无可用的规划路线", alignment: Alignment.center);
// EasyLoading.dismiss();
// return;
// } else if (errorCode != BMFSearchErrorCode.NO_ERROR) {
// SmartDialog.showToast("获取路线规划失败,请稍后再试", alignment: Alignment.center);
// EasyLoading.dismiss();
// return;
// }
// print(
// '`市内公交检索回调 errorCode = ${errorCode} \n result = ${result?.toMap()}');
//
// /// 坐标点
// List<Latlng> coordinates = [];
// result.routes.first.steps.forEach((e1) {
// e1.points.forEach((e2) {
// coordinates.add(Latlng(e2.latitude, e2.longitude));
// });
// });
// updateMapLine(
// coordinates,
// result.routes.first.duration.hours,
// result.routes.first.duration.minutes,
// result.routes.first.distance.toDouble());
// });
// // 发起检索
// bool flag =
// await transitRouteSearch.transitRouteSearch(transitRoutePlanOption);
// } else {
// //驾车
// BMFDrivingRoutePlanOption drivingRoutePlanOption =
// BMFDrivingRoutePlanOption(from: from, to: to);
// BMFDrivingRouteSearch drivingRouteSearch = BMFDrivingRouteSearch();
// drivingRouteSearch.onGetDrivingRouteSearchResult(callback:
// (BMFDrivingRouteResult result, BMFSearchErrorCode errorCode) {
// if (errorCode == BMFSearchErrorCode.RESULT_NOT_FOUND) {
// SmartDialog.showToast("该方案暂无可用的规划路线", alignment: Alignment.center);
// EasyLoading.dismiss();
// return;
// } else if (errorCode != BMFSearchErrorCode.NO_ERROR) {
// SmartDialog.showToast("获取路线规划失败,请稍后再试", alignment: Alignment.center);
// EasyLoading.dismiss();
// return;
// }
// print(
// '驾车检索回调 errorCode = ${errorCode} \n result = ${result?.toMap()}');
//
// /// 坐标点
// List<Latlng> coordinates = [];
// result.routes.first.steps.forEach((e1) {
// e1.points.forEach((e2) {
// coordinates.add(Latlng(e2.latitude, e2.longitude));
// });
// });
// updateMapLine(
// coordinates,
// result.routes.first.duration.hours,
// result.routes.first.duration.minutes,
// result.routes.first.distance.toDouble());
// });
// // 发起检索
// bool flag =
// await drivingRouteSearch.dringRouteSearch(drivingRoutePlanOption);
// }
// }
//
// Widget navigationBox() {
// return Container(
// height: 132.h,
// margin: EdgeInsets.only(
// top: MediaQuery.of(context).padding.top + 16.h,
// left: 14.w,
// right: 14.w),
// padding: EdgeInsets.only(left: 12.w, right: 18.w, top: 8.h),
// decoration: BoxDecoration(
// color: Colors.white,
// boxShadow: [
// BoxShadow(
// color: Color(0x08213303),
// offset: Offset(0, 2),
// blurRadius: 4,
// spreadRadius: 0,
// ),
// ],
// borderRadius: BorderRadius.circular(6),
// ),
// child: Row(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// setState(() {
// navigationState = 0;
// });
// },
// child: Padding(
// padding: EdgeInsets.only(top: 10.h, right: 10.w),
// child: Icon(
// Icons.arrow_back_ios,
// color: Color(0xFF353535),
// size: 24,
// ),
// ),
// ),
// Expanded(
// child: Column(
// children: [
// Container(
// width: double.infinity,
// decoration: BoxDecoration(
// color: Color(0xFFF5F5F5),
// borderRadius: BorderRadius.circular(6),
// ),
// padding: EdgeInsets.only(
// top: 12.h,
// bottom: 12.h,
// left: 15.w,
// ),
// child: Row(
// mainAxisAlignment: MainAxisAlignment.center,
// children: [
// Expanded(
// child: Column(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Padding(
// padding: EdgeInsets.only(
// bottom: 14.h,
// ),
// child: Row(
// children: [
// Container(
// width: 4.h,
// height: 4.h,
// margin: EdgeInsets.only(right: 20.w),
// decoration: BoxDecoration(
// color: Color(0xFF32A060),
// borderRadius: BorderRadius.circular(6),
// ),
// ),
// Expanded(
// child: Text(
// positionSorta == false
// ? "我的位置"
// : (storeInfo?.storeName ?? ""),
// overflow: TextOverflow.ellipsis,
// style: TextStyle(
// color: Color(0xFF0D0D0D),
// fontSize: 14.sp,
// fontWeight: MyFontWeight.semi_bold,
// ),
// ))
// ],
// ),
// ),
// Row(
// children: [
// Container(
// width: 4.h,
// height: 4.h,
// margin: EdgeInsets.only(right: 20.w),
// decoration: BoxDecoration(
// color: Color(0xFFFA5151),
// borderRadius: BorderRadius.circular(6),
// ),
// ),
// Expanded(
// child: Text(
// positionSorta == false
// ? (storeInfo?.storeName ?? "")
// : "我的位置",
// overflow: TextOverflow.ellipsis,
// style: TextStyle(
// color: Color(0xFF0D0D0D),
// fontSize: 14.sp,
// fontWeight: MyFontWeight.semi_bold,
// ),
// ))
// ],
// )
// ],
// )),
// GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// positionSorta = !positionSorta;
// navigationPosition();
// },
// child: Container(
// padding: EdgeInsets.only(right: 24.w),
// child: Image.asset(
// "assets/image/position_sort.webp",
// fit: BoxFit.fill,
// height: 16.h,
// width: 14.w,
// ),
// ),
// )
// ],
// ),
// ),
// SizedBox(
// height: 12.h,
// ),
// Row(
// children: [
// Expanded(
// child: GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// navigationType = 4;
// navigationPosition();
// },
// child: Container(
// decoration: BoxDecoration(
// color: navigationType == 4
// ? Color(0xFFE8FFF2)
// : Colors.transparent,
// borderRadius: BorderRadius.circular(23),
// ),
// padding:
// EdgeInsets.symmetric(vertical: 5.h, horizontal: 13.w),
// child: Row(
// children: [
// if (navigationType == 4)
// Image.asset(
// "assets/image/icon_drive.webp",
// fit: BoxFit.fill,
// height: 16.h,
// width: 14.w,
// ),
// Padding(
// padding: EdgeInsets.only(left: 2.w),
// child: Text(
// "驾车",
// overflow: TextOverflow.ellipsis,
// style: TextStyle(
// color: navigationType == 4
// ? Color(0xFF32A060)
// : Colors.black,
// fontSize: 12.sp,
// fontWeight: MyFontWeight.medium,
// ),
// ),
// )
// ],
// ),
// ),
// )),
// Expanded(
// child: GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// navigationType = 3;
// navigationPosition();
// },
// child: Container(
// decoration: BoxDecoration(
// color: navigationType == 3
// ? Color(0xFFE8FFF2)
// : Colors.transparent,
// borderRadius: BorderRadius.circular(23),
// ),
// padding: EdgeInsets.symmetric(
// vertical: 5.h, horizontal: 13.w),
// child: Row(
// children: [
// if (navigationType == 3)
// Image.asset(
// "assets/image/icon_transit.webp",
// fit: BoxFit.fill,
// height: 16.h,
// width: 14.w,
// ),
// Padding(
// padding: EdgeInsets.only(left: 2.w),
// child: Text(
// "公交",
// overflow: TextOverflow.ellipsis,
// style: TextStyle(
// color: navigationType == 3
// ? Color(0xFF32A060)
// : Colors.black,
// fontSize: 12.sp,
// fontWeight: MyFontWeight.medium,
// ),
// ),
// )
// ],
// ),
// ))),
// Expanded(
// child: GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// navigationType = 2;
// navigationPosition();
// },
// child: Container(
// decoration: BoxDecoration(
// color: navigationType == 2
// ? Color(0xFFE8FFF2)
// : Colors.transparent,
// borderRadius: BorderRadius.circular(23),
// ),
// padding: EdgeInsets.symmetric(
// vertical: 5.h, horizontal: 13.w),
// child: Row(
// children: [
// if (navigationType == 2)
// Image.asset(
// "assets/image/icon_by_bike.webp",
// fit: BoxFit.fill,
// height: 16.h,
// width: 14.w,
// ),
// Padding(
// padding: EdgeInsets.only(left: 2.w),
// child: Text(
// "骑行",
// overflow: TextOverflow.ellipsis,
// style: TextStyle(
// color: navigationType == 2
// ? Color(0xFF32A060)
// : Colors.black,
// fontSize: 12.sp,
// fontWeight: MyFontWeight.medium,
// ),
// ),
// )
// ],
// ),
// ))),
// Expanded(
// child: GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// navigationType = 1;
// navigationPosition();
// },
// child: Container(
// decoration: BoxDecoration(
// color: navigationType == 1
// ? Color(0xFFE8FFF2)
// : Colors.transparent,
// borderRadius: BorderRadius.circular(23),
// ),
// padding: EdgeInsets.symmetric(
// vertical: 5.h, horizontal: 13.w),
// child: Row(
// children: [
// if (navigationType == 1)
// Image.asset(
// "assets/image/icon_walk.webp",
// fit: BoxFit.fill,
// height: 16.h,
// width: 14.w,
// ),
// Padding(
// padding: EdgeInsets.only(left: 2.w),
// child: Text(
// "步行",
// overflow: TextOverflow.ellipsis,
// style: TextStyle(
// color: navigationType == 1
// ? Color(0xFF32A060)
// : Colors.black,
// fontSize: 12.sp,
// fontWeight: MyFontWeight.medium,
// ),
// ),
// )
// ],
// ),
// ))),
// ],
// )
// ],
// ))
// ],
// ),
// );
// }
//
// Widget navigationDistance() {
// return Container(
// height: 173.h,
// padding: EdgeInsets.only(top: 16.h, left: 16.w, right: 16.w),
// decoration: BoxDecoration(
// color: Colors.white,
// boxShadow: [
// BoxShadow(
// color: Color(0x08213303),
// offset: Offset(0, 2),
// blurRadius: 4,
// spreadRadius: 0,
// ),
// ],
// borderRadius: BorderRadius.vertical(
// top: Radius.circular(8),
// ),
// ),
// child: Column(
// // mainAxisAlignment: MainAxisAlignment.start,
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Expanded(
// child: Row(
// crossAxisAlignment: CrossAxisAlignment.start,
// children: [
// Text(
// "${navigationType == 1 ? "步行" : navigationType == 2 ? "骑行" : navigationType == 3 ? "公交" : "驾车"}${(hours ?? "") + (minutes ?? "")}",
// overflow: TextOverflow.ellipsis,
// style: TextStyle(
// fontSize: 20.sp,
// color: Color(0xFF0D0D0D),
// fontWeight: MyFontWeight.bold,
// ),
// ),
// Padding(
// padding: EdgeInsets.only(left: 40.w),
// child: Text(
// (distance ?? 0) > 1000
// ? S.of(context).gongli(
// ((distance ?? 0) / 1000 * 100).toInt() / 100.0)
// : S
// .of(context)
// .mi(((distance ?? 0) * 100).toInt() / 100.0),
// overflow: TextOverflow.ellipsis,
// style: TextStyle(
// fontSize: 20.sp,
// color: Color(0xFF0D0D0D),
// fontWeight: MyFontWeight.bold,
// ),
// ),
// ),
// ],
// ),
// ),
// GestureDetector(
// behavior: HitTestBehavior.opaque,
// onTap: () {
// setState(() {
// navigationState = 1;
// showMapSelect();
// });
// },
// child: Container(
// alignment: Alignment.center,
// width: double.infinity,
// padding: EdgeInsets.symmetric(vertical: 10.h),
// margin: EdgeInsets.only(bottom: 30.h),
// decoration: BoxDecoration(
// color: Color(0xFF32A060),
// borderRadius: BorderRadius.circular(23),
// ),
// child: Text(
// navigationType == 1
// ? "步行导航"
// : navigationType == 2
// ? "骑行导航"
// : navigationType == 3
// ? "公交导航"
// : "驾车导航",
// style: TextStyle(
// fontSize: 20.sp,
// color: Colors.white,
// fontWeight: MyFontWeight.medium,
// ),
// ),
// ),
// )
// ],
// ),
// );
// }
//
// showMapSelect() {
// showCupertinoModalPopup(
// context: context,
// builder: (context) {
// return CupertinoActionSheet(
// actions: [
// CupertinoActionSheetAction(
// child: Text(
// "百度地图",
// style: TextStyle(
// fontWeight: MyFontWeight.regular,
// ),
// ),
// onPressed: () {
// onOpenBaiduMapRoute();
// Navigator.of(context).pop();
// },
// isDefaultAction: true,
// isDestructiveAction: false,
// ),
// ],
// cancelButton: CupertinoActionSheetAction(
// onPressed: () {
// Navigator.of(context).pop();
// },
// child: Text(S.of(context).quxiao,
// style: TextStyle(
// color: Colors.blue,
// ),),
// isDestructiveAction: true,
// ),
// );
// });
// }
//
// List<Widget> itemServer(String businessService) {
// if (businessService == null || businessService == "") return [];
// var list = businessService.split(",");
// return list
// .map((e) => Container(
// margin: EdgeInsets.only(right: 8.w),
// child: RoundButton(
// height: 17.h * AppUtils.textScale(context),
// text: "$e",
// backgroup: Color(0xFFFF7A1A),
// padding: EdgeInsets.only(
// left: 2.w,
// right: 2.w,
// ),
// fontSize: 10.sp,
// textColor: Colors.white,
// ),
// ))
// .toList();
// }
//
// BMFMapController _mapController;
// Latlng latLng;
// Latlng myLatLng;
// BMFMarker bmfMarker;
//
// onMapCreated(BMFMapController controller) {
// _mapController = controller;
// setState(() {
// _mapController.showUserLocation(true);
// _mapController.setCustomMapStyle('assets/map_style/chatian.sty', 0);
// BMFUserLocationDisplayParam displayParam = BMFUserLocationDisplayParam(
// locationViewOffsetX: 0,
// locationViewOffsetY: 0,
// accuracyCircleFillColor: Colors.red,
// accuracyCircleStrokeColor: Colors.blue,
// isAccuracyCircleShow: true,
// locationViewImage: 'assets/image/icon_my_location.webp',
// locationViewHierarchy:
// BMFLocationViewHierarchy.LOCATION_VIEW_HIERARCHY_BOTTOM,
// );
// _mapController.updateLocationViewWithParam(displayParam);
// addMarker();
// });
// }
//
// addMarker() async {
// latLng = await AppUtils.coordConvert(Latlng(double.tryParse(widget.arguments["lat"]),
// double.tryParse(widget.arguments["lng"])));
// // latLng = Latlng(double.tryParse(widget.arguments["lat"]),
// // double.tryParse(widget.arguments["lng"]));
//
// if (bmfMarker == null && _mapController != null) {
// bmfMarker = BMFMarker.icon(
// position: latLng,
// centerOffset: BMFPoint(0.5, 0.7),
// enabled: false,
// icon: "assets/image/icon_map_marker.webp",
// draggable: false,
// );
// _mapController.addMarker(bmfMarker);
// }
// _mapController.setCenterCoordinate(latLng, true);
// }
// }