美文网首页坚持写iOS Developer程序员
 Swift集成百度云检索实现条件位置过滤筛选

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

作者: 轻云_ | 来源:发表于2017-02-10 11:40 被阅读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)
        }
    }
    }

    相关文章

      网友评论

        本文标题: Swift集成百度云检索实现条件位置过滤筛选

        本文链接:https://www.haomeiwen.com/subject/mlsgittx.html