123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- #include "area.h"
- Area::Area(Json::Value& v) : Data(v)
- {
- m_data_type=DATA_TYPE_ZONE;
- set(v);
- }
- void Area::set(Json::Value& v)
- {
- m_name=v["name"].asString();
- m_coord = v["coordinates"];
- m_resource= v["resource"].asString();
- for(int i= 0; i<v["points"].size(); i++)
- m_points.push_back(v["points"][i]);
- }
- Area::Area(Way& v) : Data()
- {
- m_data_type=DATA_TYPE_ZONE;
- for(int i=0; i<v.m_keys.size(); i++)
- {
- if(v.m_keys[i]=="name") m_name=v.m_values[i];
- if(v.m_keys[i]=="resource") m_resource=v.m_values[i];
- }
-
- m_coord = Json::Value(Json::arrayValue);
- for(int i=0; i<v.m_nodes.size(); i++)
- {
- Json::Value a(Json::arrayValue);
- a[0]=v.m_nodes[i]->m_lon;
- a[1]=v.m_nodes[i]->m_lat;
- m_coord[i]=a;
- }
- for(int i=0; i<v.m_points.size(); i++)
- {
- m_points.push_back(Point(*v.m_points[i]));
- }
- }
- Area::Area() : Data()
- {
- m_data_type=DATA_TYPE_ZONE;
- m_name="null";
- m_coord = Json::Value(Json::arrayValue);
- m_resource= "null";
- }
- const std::string& Area::getName() { return m_name;}
- Json::Value Area::getJson(bool b)
- {
- Json::Value r(Json::objectValue);
- r["name"]=m_name;
- r["coordinates"]=m_coord;
- r["points"]=Json::Value(Json::arrayValue);
- r["resource"]=m_resource;
- for(unsigned int i=0; i<m_points.size(); i++)
- {
- r["points"][i]=m_points[i].toJson();
-
- }
- return r;
- }
- void Area::addPoint(Point& p)
- {
- if(!m_points.size())m_points.push_back(p);
- else m_points[0]=p;
- }
- Area::~Area()
- {
- //dtor
- }
- Area& Area::cast(Data& d)
- {
- if(d.getDataType ()!=DATA_TYPE_ZONE)
- assert(0);
- return (Area&)d;
- }
|