Browse Source

历史数据抛抖动点

lixioayao 6 years ago
parent
commit
a1021099bd
1 changed files with 9 additions and 6 deletions
  1. 9 6
      his_location.h

+ 9 - 6
his_location.h

@@ -75,10 +75,13 @@ struct location_card
 		if(!is_valid())
 		  return false;
 		point p=m_d.back().p;
-		//if(p==pt)return false;
-		if(point::eq(p.x,pt.x,0.05) && point::eq(p.y,pt.y,0.05)) return false;
+
+		//if(point::eq(p.x,pt.x,0.2) && point::eq(p.y,pt.y,0.2)) return false;
+        double dis = p.dist(pt);
 		double arg = make_arg(pt,p);
-		log_info("his_location:line_changed:%d,%f,m_arg:%f,%s,%f",m_cardid,arg,m_arg, (arg-m_arg > -1e-10 && arg-m_arg<1e-10)?"same":"not same",m_arg-arg);
+		log_info("his_location:line_changed:%d,%f,m_arg:%f,%s,%f,%f",m_cardid,arg,m_arg, (arg-m_arg > -1e-10 && arg-m_arg<1e-10)?"same":"not same",m_arg-arg,dis);
+        if(dis<1.5 && fabs(fabs(arg)+fabs(m_arg)-3.141593)< 0.000005)
+          return false;
 		return !point::eq(arg,m_arg,1e-10);
 	}
 	bool is_speed_changed(const point& pt,uint64_t time)
@@ -94,13 +97,13 @@ struct location_card
 			m_d.pop();
 		}
 		m_d.emplace(pt,time);
-		if(v==0.0)
+		if(v<=0.1)
 		  return flag;
 		double dist = m_p.dist(pt);
 		double t	= time - m_timestamp;
 		double avge_speed= dist/t*1000;
-		log_info("his_location cardid:%d:v:%.2f,avge_v:%.2f,(%.2f--%.2f)",m_cardid,v,avge_speed,0.8*avge_speed,1.2*avge_speed);
-		if(v<(1-0.2)*avge_speed && v>(1+0.2)*avge_speed)
+		log_info("his_location cardid:%d:v:%.2f,avge_v:%.2f,(%.2f--%.2f)",m_cardid,v,avge_speed,0.7*avge_speed,1.3*avge_speed);
+		if(v<(1-0.3)*avge_speed && v>(1+0.3)*avge_speed)
 		  flag=true;
 		  
 		return flag;