From 70a344485bd0c9b68ac91f72ed23ec5bfa998b09 Mon Sep 17 00:00:00 2001
From: admin <weikou2014>
Date: 星期四, 25 十一月 2021 19:30:25 +0800
Subject: [PATCH] 功能完善

---
 lib/ui/map/location_search.dart |   75 +++++++++++++++++++++++--------------
 1 files changed, 46 insertions(+), 29 deletions(-)

diff --git a/lib/ui/map/location_search.dart b/lib/ui/map/location_search.dart
index b61ec25..976a09e 100644
--- a/lib/ui/map/location_search.dart
+++ b/lib/ui/map/location_search.dart
@@ -1,26 +1,16 @@
-import 'dart:async';
-import 'dart:io';
-import 'dart:typed_data';
 import 'dart:ui';
 
 import 'package:flutter/cupertino.dart';
 import 'package:flutter/material.dart';
 import 'package:flutter/rendering.dart';
+import 'package:flutter/services.dart';
 import 'package:flutter_baidu_mapapi_base/flutter_baidu_mapapi_base.dart';
 import 'package:flutter_baidu_mapapi_map/flutter_baidu_mapapi_map.dart';
 import 'package:flutter_baidu_mapapi_search/flutter_baidu_mapapi_search.dart';
-import 'package:locations/ui/mine/advice.dart';
-import 'package:locations/ui/mine/permission.dart';
-import 'package:locations/ui/mine/settings.dart';
-import 'package:locations/ui/mine/share_to_friends.dart';
-import 'package:locations/ui/mine/try_functions.dart';
-import 'package:locations/ui/widget/button.dart';
+import 'package:locations/utils/global.dart';
 import 'package:locations/utils/location_util.dart';
-import 'package:locations/utils/map_util.dart';
-import 'package:locations/utils/pageutils.dart';
+import 'package:locations/utils/search_util.dart';
 import 'package:locations/utils/ui_constant.dart';
-import 'package:path_provider/path_provider.dart';
-import 'package:permission_handler/permission_handler.dart';
 
 //鎺т欢闃村奖
 List<BoxShadow> getViewShadow() {
@@ -45,7 +35,9 @@
   BMFMapOptions mapOptions = BMFMapOptions(
       showMapScaleBar: false,
       mapType: BMFMapType.Standard,
-      center: BMFCoordinate(39.917215, 116.380341),
+      center: Global.currentPosition != null
+          ? Global.currentPosition
+          : BMFCoordinate(39.917215, 116.380341),
       mapScaleBarPosition: BMFPoint(0, 200),
       zoomLevel: 12,
       mapPadding: BMFEdgeInsets(left: 30, top: 0, right: 30, bottom: 200));
@@ -55,11 +47,23 @@
 
   TextEditingController? editingController;
   List<BMFPoiInfo>? suggestList;
+  List<BMFPoiInfo>? recordList;
+  BMFCoordinate? currentPosition;
 
   @override
   void initState() {
     super.initState();
     editingController = TextEditingController();
+    loadRecord();
+  }
+
+  //鍔犺浇璁板綍椤甸潰
+  void loadRecord(){
+    SearchUtil.getRecordList().then((value) {
+      setState(() {
+        recordList = value;
+      });
+    });
   }
 
   //鑾峰彇鍦板浘瑙嗗浘
@@ -68,12 +72,11 @@
       child: BMFMapWidget(
         onBMFMapCreated: (controller) {
           _mapController = controller;
-          //鍚姩瀹氫綅
-          LocationUtil.init(0);
-          LocationUtil.startLocation((map) {
-            double lat = map["latitude"] as double;
-            double lng = map["logitude"] as double;
-            _mapController!.setCenterCoordinate(BMFCoordinate(lng,lat), true);
+          LocationUtil.startLocation(0, (state, map) {
+            if (state == LocationState.success) {
+              currentPosition = BMFCoordinate.fromMap(map!);
+              _mapController!.setCenterCoordinate(currentPosition!, true);
+            }
           });
         },
         mapOptions: mapOptions,
@@ -237,13 +240,14 @@
             child: Container(
           color: Colors.white,
           padding: const EdgeInsets.only(left: 20, right: 20),
-          child: Column(
-            children: [getHistoryItem("铻嶆亽鐩堝槈涓績-瑗块棬", "閲嶅簡甯傛睙鍖楀尯", 0)],
-          ),
+          child:  ListView.builder(itemBuilder: (BuildContext context, int index){
+              return getHistoryItem(recordList![index].name!, recordList![index].address!, recordList![index]);
+            },itemCount: recordList==null?0:recordList!.length,) ,
         ))
       ],
     );
   }
+
 
   setSearchKey(String key) {
     editingController!.text = key;
@@ -251,6 +255,16 @@
         baseOffset: key.length, extentOffset: editingController!.text.length);
     startPOISearch(key);
   }
+
+  // static const messageChannel =
+  //     const BasicMessageChannel('POISearch', StandardMessageCodec());
+  //
+  // void searchPOI() async {
+  //   Map value = await messageChannel.send({"method": "searchNearBy"}) as Map;
+  //   if (value["code"] == 0) {
+  //     print("杩斿洖缁撴灉涓�:$value");
+  //   }
+  // }
 
   startPOISearch(String key) async {
     setState(() {
@@ -261,15 +275,18 @@
         state = 1;
     });
 
-    print("startPOISearch-$key");
     BMFPoiNearbySearchOption poiNearbySearchOption = BMFPoiNearbySearchOption(
         keywords: <String>[key],
-        location: BMFCoordinate(40.049557, 116.279295),
-        isRadiusLimit: false);
+        location: currentPosition != null
+            ? currentPosition
+            : BMFCoordinate(29.674509, 106.517571),
+        radius: 10000,
+        isRadiusLimit: true);
 
     BMFPoiNearbySearch nearbySearch = BMFPoiNearbySearch();
     nearbySearch.onGetPoiNearbySearchResult(
         callback: (BMFPoiSearchResult result, BMFSearchErrorCode errorCode) {
+      print("鎼滅储缁撴灉鍥炶皟锛�$result");
       setState(() {
         suggestList = result.poiInfoList;
       });
@@ -314,7 +331,7 @@
                   alignment: Alignment.center, child: Text("鏆傛棤鏁版嵁"));
             } else {
               return getHistoryItem(suggestList![index].name!,
-                  suggestList![index].address!, index);
+                  suggestList![index].address!, suggestList![index]);
             }
           },
           itemCount: suggestList != null ? suggestList!.length : 1,
@@ -323,10 +340,10 @@
   }
 
   //鍘嗗彶璁板綍椤圭洰
-  Widget getHistoryItem(String title, String content, int index) {
+  Widget getHistoryItem(String title, String content, BMFPoiInfo info,{bool showDistance=false}) {
     return InkWell(
         onTap: () {
-          print("鐐瑰嚮:$index");
+          SearchUtil.addSearchRecord(info);
         },
         child: Container(
           height: 67,

--
Gitblit v1.8.0