panlei
2019-07-12 9a50745cd75d4bd7ecd27f7ce9e666c5b85746c9
ruleserver/ruleToformula.go
@@ -166,7 +166,7 @@
func GetPolygons(cameraId string) []protomsg.CameraPolygon {
   var cameraPolygons []protomsg.CameraPolygon
   cameraPolygons = cache.GetPolygonsByCameraId(cameraId)
   logger.Debug("------=======查看下全部区域:",cameraPolygons)
   return cameraPolygons
}
@@ -588,8 +588,7 @@
// 将字符串格式的坐标序列化为Point格式
func Json2points(areaPoints string) []Point {
   var pts []Point
   logger.Error("=========打印下区域数据:",areaPoints)
   if areaPoints == "" {
   if areaPoints == "[]" {
      logger.Error("=====================此区域为全部区域")
      pts = append(pts, Point{0, 0})
      pts = append(pts, Point{0, 540})
@@ -715,7 +714,7 @@
            for _, obj := range am.filterData {
               for index := 0; index < len(obj.Liker); {
                  // 将达不到阈值的相似者从相似者数组中删除
                  logger.Warn("=======================相似值:", float64(obj.Liker[index].CompareScore*100))
                  logger.Debug("=======================相似值:", float64(obj.Liker[index].CompareScore*100))
                  if float64(obj.Liker[index].CompareScore*100) < argValue {
                     // Go 语言中切片删除元素的本质是:以被删除元素为分界点,将前后两个部分的内存重新连接起来。不用怀疑,数组删除元素就这么坑爹
                     obj.Liker = append(obj.Liker[:index], obj.Liker[index+1:]...)
@@ -743,7 +742,7 @@
            if rule.Operator == "==" || rule.Operator == ">=" || rule.Operator == "<=" || rule.Operator == "<" || rule.Operator == ">" || rule.Operator == "!=" {
               // 如果是不规矩的连接符统统返回false 规则也只能判断人脸的相似度,所以不存在别的连接符
               if rule.SdkArgAlias == "score" || rule.SdkArgAlias == "proportion" || rule.SdkArgAlias == "size" { // 判断的是相似值,占比,尺寸等过滤条件,如果再有,还可以再加
                  logger.Info("---------------------------终于等到你")
                  //logger.Info("---------------------------终于等到你")
                  var args []*Arg
                  if rule.RuleWithPre == "&&" {
                     args = am.filterData
@@ -752,7 +751,7 @@
                  }
                  // 先清空过滤后的数据,再往里塞本次过滤后的数据
                  am.filterData = am.filterData[0:0]
                  logger.Info("-----------------------人脸过滤的args里的数量:", len(args))
                  //logger.Info("-----------------------人脸过滤的args里的数量:", len(args))
                  for _, arg := range args {
                     var formula string
                     if rule.SdkArgAlias == "score" {