Browse Source

增加web地址备用逻辑,增加宏SITE_AREA用来判断是使用分站区域还是使用区域定位。定义了该宏,则使用分站区域,否则区域定位

lixioayao 5 years ago
parent
commit
a04c54e26f
3 changed files with 16 additions and 4 deletions
  1. 3 2
      Makefile.am
  2. 10 1
      area.cpp
  3. 3 1
      main.cpp

+ 3 - 2
Makefile.am

@@ -26,7 +26,7 @@ SRC_MAIN= ant.cpp area.cpp base64.cpp bindmorecard.cpp mine_business.cpp card_ar
 
 AM_SOURCES=$(SRC_MONKEYCAR) $(SRC_MODULE_SERVICE) $(SRC_MAIN) $(SRC_MAIN_EVENT)
 
-AM_CPPFLAGS=-Wall -pthread -m64 -g  -std=c++11  -I${prefix}/include -I/usr/local/mysql/include -Iwebsocket -Iwebsocket/sio -I./db  -Imodule_service
+AM_CPPFLAGS=-Wall -pthread -m64 -g  -std=c++11 -I${prefix}/include -I/usr/local/mysql/include -Iwebsocket -Iwebsocket/sio -I./db  -Imodule_service
 
 AM_LDFLAGS=-Wall -pthread -m64 -g  -std=c++11  -L${prefix}/lib  -L/usr/local/mysql/lib
 
@@ -48,7 +48,8 @@ test_SOURCES=test.cpp base64.cpp point.cpp
 test_CPPFLAGS=${AM_CPPFLAGS}
 test_LDFLAGS=${AM_LDFLAGS}  -L. -lzlog -lrt
 
-DEFS= 
+#DEFS= -DSITE_AREA
+DEFS=
 EXTRA_DIST=
 
 

+ 10 - 1
area.cpp

@@ -188,6 +188,9 @@ void area::on_leave(const std::shared_ptr<area_hover>&a,const std::shared_ptr<ca
 }
 bool area::in_area(const std::shared_ptr<site>&s,const std::shared_ptr<card_location_base>&c, const point & p,int & sarid)
 {
+#ifdef SITE_AREA
+    return false;
+#endif
 	if(m_bound.empty())
 	  return false;
 	int counter = 0;
@@ -535,8 +538,14 @@ std::vector<std::shared_ptr<area>> area_list::get_area(const std::shared_ptr<sit
 	for(const auto &a:map)
 		if(a.second->in_area(s,c,pt,sarid))
 			ret.push_back(a.second);
-    if(s)
+    if(s){
         ret.push_back(s->get_area());
+#ifdef SITE_AREA
+        int area_id=s->m_area_id;
+        if(auto area_=area_list::instance()->get(area_id))
+        ret.push_back(area_);
+#endif
+    }
 	//区域覆盖不完全地图,很多车辆人行驶在地图外,如何确认.
 	return std::move(ret);
 }

+ 3 - 1
main.cpp

@@ -60,10 +60,12 @@ struct Init_Setting
         log_info("数据库线程池创建成功");
 
         std::string url=config.get("service.websocket_url","ws://127.0.0.1:8086");
+        std::string url_2=config.get("service.websocket_url_bak","");
         int32_t send_interval =config.get("service.interval_send_json_postion",1);
-        std_info("json_interval:%d",send_interval);
+        std_info("json_interval:%d,[%s]",send_interval,url.c_str());
         std::vector<std::string> url_list;
         url_list.push_back(url);
+        if(!url_2.empty())url_list.push_back(url_2);
         if(!wsClientMgr_init(url_list,send_interval))
         {
             std_info("连接webServer[%s] 失败,采集服务器无法启动!",url.c_str());