From ed2fa1640969bbfacce4eb7578486102eff1eb79 Mon Sep 17 00:00:00 2001 From: huixiang_app <953969641@qq.com> Date: Tue, 5 Sep 2023 20:41:28 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BC=A9=E6=94=BE=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/union/location_map_page.dart | 76 +++++++++++++++++++------------- 1 file changed, 45 insertions(+), 31 deletions(-) diff --git a/lib/union/location_map_page.dart b/lib/union/location_map_page.dart index dde6fbe5..17e5c619 100644 --- a/lib/union/location_map_page.dart +++ b/lib/union/location_map_page.dart @@ -163,32 +163,33 @@ class _LocationMap extends State with WidgetsBindingObserver { Expanded( child: Container( //BMFMapWidget 组件会自动默认沾满全屏,并且挡住所有遮盖物 ,BMFTextureMapWidget不会强制遮盖其他控件。 - child: (Platform.isAndroid) ? BMFTextureMapWidget( - mapOptions: BMFMapOptions( - center: BMFCoordinate( - double.tryParse(widget.arguments["lat"]), - double.tryParse(widget.arguments["lng"]), - ), - showZoomControl: false, - showMapScaleBar: false, - rotateEnabled: false, - zoomLevel: 15, - ), - onBMFMapCreated: onMapCreated, - ) : - BMFMapWidget( - mapOptions: BMFMapOptions( - center: BMFCoordinate( - double.tryParse(widget.arguments["lat"]), - double.tryParse(widget.arguments["lng"]), - ), - showZoomControl: false, - showMapScaleBar: false, - rotateEnabled: false, - zoomLevel: 15, - ), - onBMFMapCreated: onMapCreated, - )), + child: (Platform.isAndroid) + ? BMFTextureMapWidget( + mapOptions: BMFMapOptions( + center: BMFCoordinate( + double.tryParse(widget.arguments["lat"]), + double.tryParse(widget.arguments["lng"]), + ), + showZoomControl: false, + showMapScaleBar: false, + rotateEnabled: false, + zoomLevel: 15, + ), + onBMFMapCreated: onMapCreated, + ) + : BMFMapWidget( + mapOptions: BMFMapOptions( + center: BMFCoordinate( + double.tryParse(widget.arguments["lat"]), + double.tryParse(widget.arguments["lng"]), + ), + showZoomControl: false, + showMapScaleBar: false, + rotateEnabled: false, + zoomLevel: 15, + ), + onBMFMapCreated: onMapCreated, + )), flex: 3, ), navigationState == 0 @@ -306,8 +307,9 @@ class _LocationMap extends State with WidgetsBindingObserver { onTap: () { if (myCity == null) { // onOpenBaiduMap(); - SmartDialog.showToast("您定位服务未开启,请前往系统设置中开启定位服务", - alignment: Alignment.center); + SmartDialog.showToast( + "您定位服务未开启,请前往系统设置中开启定位服务", + alignment: Alignment.center); } else { navigationState = 1; if ((distance ?? 0) < 500) @@ -408,7 +410,8 @@ class _LocationMap extends State with WidgetsBindingObserver { } 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"); + 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 @@ -452,7 +455,7 @@ class _LocationMap extends State with WidgetsBindingObserver { } updateMapLine(List coordinates, int needHours, int needMinutes, - double needDistance) { + double needDistance) async { try { //刪除之前的創建的點和綫 _mapController.cleanAllMarkers(); @@ -499,12 +502,23 @@ class _LocationMap extends State with WidgetsBindingObserver { draggable: false, ); _mapController.addMarker(terminalBmfMarker); - _mapController.setVisibleMapRectWithPadding( + SmartDialog.showToast( + "${startLocation.longitude} ${startLocation.latitude} ${endLocation.longitude} ${endLocation.latitude}", + alignment: Alignment.center); + bool tryFlag = await _mapController.setVisibleMapRectWithPadding( visibleMapBounds: BMFCoordinateBounds( northeast: startLocation, southwest: endLocation), animated: true, insets: EdgeInsets.only(top: 500, bottom: 200, left: 200, right: 200)); + if (!tryFlag) { + tryFlag = await _mapController.setVisibleMapBounds( + BMFCoordinateBounds(northeast: startLocation, southwest: endLocation), + true, + ); + if (!tryFlag) + SmartDialog.showToast("还是不行", alignment: Alignment.center); + } hours = needHours == 0 ? "" : "$needHours小时"; minutes = needMinutes == 0 ? "" : "$needMinutes分钟";