|
@@ -188,6 +188,7 @@ 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)
|
|
|
{
|
|
|
+ return false;
|
|
|
if(m_bound.empty())
|
|
|
return false;
|
|
|
int counter = 0;
|
|
@@ -535,8 +536,12 @@ 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());
|
|
|
+ int area_id=s->m_area_id;
|
|
|
+ if(auto area_=area_list::instance()->get(area_id))
|
|
|
+ ret.push_back(area_);
|
|
|
+ }
|
|
|
//区域覆盖不完全地图,很多车辆人行驶在地图外,如何确认.
|
|
|
return std::move(ret);
|
|
|
}
|
|
@@ -550,8 +555,8 @@ area_hover::area_hover(const std::shared_ptr<area>&area,const point&pt)
|
|
|
void area_tool::on_point(const std::shared_ptr<card_location_base>& c,const point&pt)
|
|
|
{
|
|
|
log_info("on_point...cardid:%d,type:%d,x:%.2f,y:%.2f",c->m_id,c->m_type,pt.x,pt.y);
|
|
|
- if(pt.empty())
|
|
|
- return;
|
|
|
+ if(pt.empty()) return;
|
|
|
+
|
|
|
int special_area=-1;
|
|
|
std::vector<std::shared_ptr<area>> areas=area_list::instance()->get_area(m_site,c, pt,special_area);
|
|
|
if(special_area != -1)
|