12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- #ifndef __INCLUDE_HIS_LOCATION_HPP
- #define __INCLUDE_HIS_LOCATION_HPP
- #include <complex>
- #include <queue>
- #include "point.h"
- struct location_card
- {
- location_card(uint32_t id,uint64_t type,uint32_t objid);
- uint32_t m_cardid;
- uint16_t m_type;
- uint32_t m_objid;
- double m_arg;
- int m_areaid;
- int m_mapid;
- int m_siteid;
- uint64_t m_timestamp;
- point m_p;
- int m_direct_index;
- uint64_t last_timestamp;
- bool m_isInsert ;
- static uint32_t m_difftime;
- static int m_distance;
- void set_cid(uint32_t cid){ m_objid=cid; }
- struct mini_data
- {
- mini_data(const point &p,uint64_t t)
- :p(p)
- ,time(t)
- {}
- point p;
- uint64_t time;
- };
- std::queue<mini_data> m_d;
- void init();
- void init_att(const point &pt,uint64_t time);
- void set_invalid();
-
- bool is_valid();
-
- double make_arg(const point &pt,const point &p);
- void set(const point &pt,uint64_t time);
-
- bool line_changed(const point &pt);
-
- bool is_speed_changed(const point& pt,uint64_t time);
-
- bool time_out(const point &p,uint64_t time);
-
- bool is_area_changed(int new_areaid);
-
- bool is_map_changed(int new_mapid);
-
- void push(uint64_t timestamp,const point & p,int32_t areaid,int32_t mapid,int32_t siteid,bool bclose = false);
- void insert();
- void insert(uint64_t timestamp, const point & p, int32_t areaid, int32_t mapid, int32_t siteid, double scale);
- void update(const point &p,uint64_t timestamp,int flag=0,int dflag=0);
-
- std::vector<point> find_path(const point &p1,const point &p2);
-
- bool handle_message(const point &p,uint64_t timestamp);
-
- bool handle_path(std::vector<point> &rc,uint64_t timestamp,bool flag);
- };
- #endif
|