|
@@ -7,15 +7,15 @@
|
|
|
//
|
|
|
|
|
|
import UIKit
|
|
|
+import ObjectMapper
|
|
|
+import SwiftyJSON
|
|
|
|
|
|
/// 百度定位
|
|
|
let kLocationModelCache = "LocationModel"
|
|
|
|
|
|
-class LocationModel: NSObject,NSCoding {
|
|
|
+class LocationModel: NSObject,Mappable {
|
|
|
|
|
|
- private static let _sharedInstance = LocationModel()
|
|
|
-
|
|
|
- override init() {} // 私有化init方法
|
|
|
+ static let _sharedInstance = LocationModel()
|
|
|
|
|
|
class func shared() -> LocationModel {
|
|
|
return _sharedInstance
|
|
@@ -45,71 +45,54 @@ class LocationModel: NSObject,NSCoding {
|
|
|
var adCode = "610113"
|
|
|
///位置语义化结果的定位点在什么地方周围的描述信息
|
|
|
var locationdescribe = "在西安北大科技园曲江创客大街园区附近"
|
|
|
+ ///位置语义化结果的属性,该定位点周围的poi列表信息
|
|
|
+ var poiList: Array<SwiftLocationPOIModel> = []
|
|
|
|
|
|
- /// 反归档
|
|
|
- ///
|
|
|
- /// - Parameter decoder: 反编码值
|
|
|
- required init?(coder aDecoder: NSCoder) {
|
|
|
- self.latitude = aDecoder.decodeObject(forKey: "latitude") as? String ?? ""
|
|
|
- self.longitude = aDecoder.decodeObject(forKey: "longitude") as? String ?? ""
|
|
|
- self.country = aDecoder.decodeObject(forKey: "country") as? String ?? ""
|
|
|
- self.countryCode = aDecoder.decodeObject(forKey: "countryCode") as? String ?? ""
|
|
|
- self.province = aDecoder.decodeObject(forKey: "province") as? String ?? ""
|
|
|
- self.city = aDecoder.decodeObject(forKey: "city") as? String ?? ""
|
|
|
- self.district = aDecoder.decodeObject(forKey: "district") as? String ?? ""
|
|
|
- self.street = aDecoder.decodeObject(forKey: "street") as? String ?? ""
|
|
|
- self.streetNumber = aDecoder.decodeObject(forKey: "streetNumber") as? String ?? ""
|
|
|
- self.cityCode = aDecoder.decodeObject(forKey: "cityCode") as? String ?? ""
|
|
|
- self.adCode = aDecoder.decodeObject(forKey: "adCode") as? String ?? ""
|
|
|
- self.locationdescribe = aDecoder.decodeObject(forKey: "locationdescribe") as? String ?? ""
|
|
|
-
|
|
|
+
|
|
|
+ class func newInstance(map: Map) -> Mappable?{
|
|
|
+ return LocationModel()
|
|
|
}
|
|
|
-
|
|
|
- /// 归档
|
|
|
- ///
|
|
|
- /// - Parameter aCoder: 归档值
|
|
|
- func encode(with aCoder: NSCoder) {
|
|
|
- aCoder.encode(self.latitude, forKey:"latitude")
|
|
|
- aCoder.encode(self.longitude, forKey:"longitude")
|
|
|
- aCoder.encode(self.country, forKey:"country")
|
|
|
- aCoder.encode(self.countryCode, forKey:"countryCode")
|
|
|
- aCoder.encode(self.province, forKey:"province")
|
|
|
- aCoder.encode(self.city, forKey:"city")
|
|
|
- aCoder.encode(self.district, forKey:"district")
|
|
|
- aCoder.encode(self.street, forKey:"locationDescribe")
|
|
|
- aCoder.encode(self.streetNumber, forKey:"streetNumber")
|
|
|
- aCoder.encode(self.cityCode, forKey:"cityCode")
|
|
|
- aCoder.encode(self.adCode, forKey:"adCode")
|
|
|
- aCoder.encode(self.locationdescribe, forKey:"locationdescribe")
|
|
|
-
|
|
|
+ required init?(map: Map){}
|
|
|
+ override init(){}
|
|
|
+
|
|
|
+ func mapping(map: Map)
|
|
|
+ {
|
|
|
+ latitude <- map["latitude"]
|
|
|
+ longitude <- map["longitude"]
|
|
|
+ country <- map["country"]
|
|
|
+ countryCode <- map["countryCode"]
|
|
|
+ province <- map["province"]
|
|
|
+ city <- map["city"]
|
|
|
+ district <- map["district"]
|
|
|
+ street <- map["street"]
|
|
|
+ streetNumber <- map["streetNumber"]
|
|
|
+ cityCode <- map["cityCode"]
|
|
|
+ adCode <- map["adCode"]
|
|
|
+ locationdescribe <- map["locationdescribe"]
|
|
|
+ poiList <- map["poiList"]
|
|
|
}
|
|
|
+
|
|
|
|
|
|
/// 存储定位信息
|
|
|
- ///
|
|
|
- /// - Parameter locationModel: 定位模型
|
|
|
- func setLocationModel(locationModel:LocationModel) -> Void {
|
|
|
- //实例对象转换成Data
|
|
|
- let modelData = NSKeyedArchiver.archivedData(withRootObject: locationModel)
|
|
|
- //存储Data对象
|
|
|
- UserDefaults.standard.set(modelData, forKey: kLocationModelCache)
|
|
|
+ func saveObject(locationModel: LocationModel) {
|
|
|
+ var model = CacheModel()
|
|
|
+ model.data = jsonToData(jsonDic: locationModel.toJSON())
|
|
|
+ CacheManager.default.setObjectSync(model, forKey: "LocationModel")
|
|
|
+ }
|
|
|
+
|
|
|
+ func object() -> LocationModel? {
|
|
|
+ let model = CacheManager.default.objectSync(forKey: "LocationModel")
|
|
|
+ let json = try? JSON(data: model?.data ?? Data())
|
|
|
+ return LocationModel(JSONString: json?.description ?? "")
|
|
|
}
|
|
|
|
|
|
-
|
|
|
+
|
|
|
/// 获取定位信息
|
|
|
///
|
|
|
/// - Returns: 定位模型
|
|
|
func getLocationModel() -> LocationModel? {
|
|
|
- //自定义对象读取
|
|
|
- let modelData = UserDefaults.standard.data(forKey: kLocationModelCache)
|
|
|
- var locationModel = LocationModel()
|
|
|
- if modelData != nil {
|
|
|
- locationModel = NSKeyedUnarchiver.unarchiveObject(with: modelData!) as! LocationModel
|
|
|
- }
|
|
|
- _ = toString()
|
|
|
- return locationModel
|
|
|
+ return object()
|
|
|
}
|
|
|
-
|
|
|
-
|
|
|
|
|
|
func toString() -> String {
|
|
|
let str = self.country +
|