nanxinlin лет назад: 6
Родитель
Сommit
9268ada888

+ 0 - 2
RainbowPlanet/RainbowPlanet/AppDelegate/AppDelegate+BaiduMap.swift

@@ -12,8 +12,6 @@ import Foundation
 extension AppDelegate {
     func initBaiduMap() -> Void {
         BMKLocationAuth.sharedInstance()?.checkPermision(withKey: kBaiduMapAppKey, authDelegate: self)
-        //定位
-        BaiduMapManager.getSharedInstance().initLocation()
     }
 }
 

+ 1 - 1
RainbowPlanet/RainbowPlanet/AppDelegate/AppDelegate+UM.swift

@@ -29,7 +29,7 @@ extension AppDelegate {
     func common() -> Void {
 
         //将自动采集页面信息
-        MobClick.setAutoPageEnabled(true)
+//        MobClick.setAutoPageEnabled(true)
         //开发者需要显式的调用此函数,日志系统才能工作
         UMCommonLogManager.setUp()
         //打开加密传输

+ 9 - 13
RainbowPlanet/RainbowPlanet/Manager/BaiduMapManager/BaiduMapManager.swift

@@ -12,6 +12,7 @@ class BaiduMapManager: NSObject {
     private static let _sharedInstance = BaiduMapManager()
 
     var completionBlock : BMKLocatingCompletionBlock?
+    typealias LocationModelBlock = (_ locationModel: LocationModel) -> Void
 
     class func getSharedInstance() -> BaiduMapManager {
         return _sharedInstance
@@ -21,23 +22,19 @@ class BaiduMapManager: NSObject {
 
     } // 私有化init方法
     
-    func initLocation() -> Void {
-        initBlock()
-
-        locationManager.requestLocation(withReGeocode: true, withNetworkState: true, completionBlock: self.completionBlock!)
-
-    }
-
-    func initBlock() -> Void {
-        completionBlock = { location, state, error in
+    func initLocation(locationModelBlock:@escaping LocationModelBlock) -> Void {
+        locationManager.requestLocation(withReGeocode: true, withNetworkState: true) { location, state, error in
 
+            var locationModel = LocationModel.getLocationModel()
             if (error != nil)  {
                 LocationModel.setLocationModel(locationModel: LocationModel.getLocationModel()!)
+                locationModel = LocationModel.getLocationModel()
             } else {
-                let locationModel = LocationModel.init(latitude: String(describing: location!.location!.coordinate.latitude), longitude: String(describing: location!.location!.coordinate.longitude), cityCode: location!.rgcData!.cityCode ?? "", province: location!.rgcData!.province ?? "", city: location!.rgcData!.city ?? "", district: location!.rgcData!.district ?? "", street: location!.rgcData!.street ?? "", locationDescribe: location!.rgcData!.locationDescribe ?? "")
-                LocationModel.setLocationModel(locationModel: locationModel)
+                let locationModel1 = LocationModel.init(latitude: String(describing: location!.location!.coordinate.latitude), longitude: String(describing: location!.location!.coordinate.longitude), cityCode: location!.rgcData!.cityCode ?? "", province: location!.rgcData!.province ?? "", city: location!.rgcData!.city ?? "", district: location!.rgcData!.district ?? "", street: location!.rgcData!.street ?? "", locationDescribe: location!.rgcData!.locationDescribe ?? "")
+                    LocationModel.setLocationModel(locationModel: locationModel1)
+                    locationModel = LocationModel.getLocationModel()
             }
-            
+            locationModelBlock(locationModel!)
         }
     }
 
@@ -73,7 +70,6 @@ extension BaiduMapManager:BMKLocationManagerDelegate {
     ///  当定位发生错误时,会调用代理的此方法。
     func bmkLocationManager(_ manager: BMKLocationManager, didFailWithError error: Error?) {
         NXLLog("定位错误");
-        LocationModel.setLocationModel(locationModel: LocationModel.getLocationModel()!)
 
     }
 

+ 6 - 4
RainbowPlanet/RainbowPlanet/Modules/ShoppingMallModule/ShoppingMall/ViewController/ShoppingViewController.swift

@@ -56,12 +56,9 @@ extension ShoppingMallViewController {
         avatarButton.tg_left.equal(10)
         containerLayout.addSubview(avatarButton)
 
-        //定位
-        BaiduMapManager.getSharedInstance().initLocation()
-        let locationModel = LocationModel.getLocationModel()
+
 
         let addressLabel = UILabel()
-        addressLabel.text =  locationModel?.toString()
         addressLabel.textColor = UIColor.black
         addressLabel.font = kMediumFont15
         addressLabel.lineBreakMode = .byTruncatingTail
@@ -72,6 +69,11 @@ extension ShoppingMallViewController {
         containerLayout.addSubview(addressLabel)
 
 
+        //定位
+        BaiduMapManager.getSharedInstance().initLocation { (locationModel) in
+            addressLabel.text = locationModel.toString()
+        }
+
         let  goImageView = UIImageView(image: UIImage(named: "navigaitionbar_back_blue")!)
         goImageView.tg_leading.equal(addressLabel.tg_trailing)//这个图片总是跟随在flexedLabel的后面。
         goImageView.tg_centerY.equal(avatarButton.tg_centerY)