坚持写iOS Developer程序员

 Swift集成百度云检索实现条件位置过滤筛选

2017-02-10  本文已影响147人  轻云_

如果公司后台没有成熟的位置筛选算法,集成百度云检索的确可以帮助他们省去很多事,他们需要做的只是去关联自己数据库与百度控制台数据库实时同步,移动端集成即可实现.

移动端具体实现:

按照文档集成sdk,注意不同framework保持版本号一直 一般用最近的就好.

Snip20170210_1.png
        let cloudSearch = BMKCloudNearbySearchInfo()
        cloudSearch.ak = “V682411usQYKuser5AFD4GYqrvjfw" //注意安卓和iOS这里是填服务器AK
        cloudSearch.geoTableId = 123677    //控制台建表id
        //        let loca = "116.407183518387,40.0436045487097"
        cloudSearch.location = myLocation   //传入位置
        cloudSearch.radius = sliderValue      //范围
  
        cloudSearch.keyword = selectedType     //关键字
        print("_____这是筛选的类型____\(selectedType)_______")
        
        let filterr = “startDate:\(startTime),\(endTime)"   //过滤条件(时间段间),这里我是以时间段为过滤条件
        print("______我的当前位置\(myLocation)______________")
        print("______我的当前时间_______\(filterr)__________")
       
        cloudSearch.filter = filterr  
        
        //筛选标签
        cloudSearch.tags = tagS
        
        //搜索信息
        let flag = searchs.nearbySearchWithSearchInfo(cloudSearch)
        if flag == true {
            print("__________________\("周边云检索发送成功")+++++++++++++++++++++")
        }else{
            print("__________________\("周边云检索发送失败")+++++++++++++++++++++")
        }

代理方法

extension FindActivityViewController:BMKCloudSearchDelegate{

dynamic func onGetCloudPoiResult(poiResultList: [AnyObject]!, searchType type: Int32, errorCode error: Int32) {
    
    print("_______这是检索的错误类型_________\(error)===============")
    
    //        BMKErrorOk = 0,   ///< 正确,无错误
    //        BMKErrorConnect = 2,  ///< 网络连接错误
    //        BMKErrorData = 3, ///< 数据错误
    //        BMKErrorRouteAddr = 4, ///<起点或终点选择(有歧义)
    //        BMKErrorResultNotFound = 100, ///< 搜索结果未找到
    //        BMKErrorLocationFailed = 200, ///< 定位失败
    //        BMKErrorPermissionCheckFailure = 300, ///< 百度地图API授权Key验证失败
    //        BMKErrorParse = 310       ///< 数据解析失败
    
//        BMK_CLOUD_PERMISSION_UNFINISHED = -4,///<还未完成鉴权,请在鉴权通过后重试
//        BMK_CLOUD_NETWOKR_ERROR = -3,///<网络连接错误
//        BMK_CLOUD_NETWOKR_TIMEOUT = -2,///<网络连接超时
//        BMK_CLOUD_RESULT_NOT_FOUND = -1,///<没有找到检索结果
//        BMK_CLOUD_NO_ERROR = 0,///<检索结果正常返回
//        BMK_CLOUD_SERVER_ERROR = 1,///<云检索服务器内部错误
//        BMK_CLOUD_PARAM_ERROR = 2,///<输入参数有误(geoTableId或者其它参数有误)
    
    let  hud = MBProgressHUD.showHUDAddedTo(view, animated: true)
    hud.label.text = "筛选中"
    
    if error == 0 {
        //            let aaa = poiResultList as NSArray!
        for index in 0...poiResultList.count-1 {
            
            let result = poiResultList[index] as! BMKCloudPOIList
            
            for i in 0...result.POIs.count-1 {
                let poi = result.POIs[i] as! BMKCloudPOIInfo
                //                    print("________________\(poi.latitude)===============")
                //                    print("________________\(poi.longitude)===============")
                //                    print("________________\(poi.address)===============")
                //                    print("________________\(poi.distance)===============")
                //                    print("________________\(poi.tags)===============")
                //                    print("________________\(poi.geotableId)===============")
                //                    print("________________\(poi.creattime)===============")
                //                    print("________________\(poi.customDict)===============")
                let dic = poi.customDict
                let model = ActivityModel()
                print("____这是检索的信息_______\(dic)_________")
                let getPicName = "\(dic["poster"]!)"
                //判断是否包含前缀
                if getPicName.componentsSeparatedByString(BASEOSSOFFICIAL).count > 1{
                model.picName = "\(dic["poster"]!)"
                }else{
                model.picName = BASEOSSOFFICIAL + "\(dic["poster"]!)"
                }
                model.startTime = "\(dic["startDate"]!)"
                model.endTime = "\(dic["endDate"]!)"
                model.location = "\(dic["locations"]!)"
                model.progress =  "\(dic["forumStatusMsg"]!)"
                model.num =  "\(dic["currentCount"]!)"
                if dic["target_id"] != nil{
                    model.id = "\(dic["target_id"]!)"
                }
                model.name = "\(dic["name"]!)"
                self.dataArray.addObject(model)
            }
            
        }
        self.collectionView.reloadData()
        hud.hideAnimated(true)
        
    }else{
//            if error == 100 {
            Alert.showText("该筛选条件下没有活动")
//            }
        hud.hideAnimated(true)
    }
}
}
上一篇下一篇

猜你喜欢

热点阅读