virtual void visitData(const IData& in) { uint64_t id = in.getIdentifier(); const bool doDataDeserialization = true; if(doDataDeserialization) { uint32_t dataLen; byte* data; in.getData(dataLen, &data); MGArchive archive((const char*)data, dataLen); Way way; archive << way; for (size_t i = 0; i < way.tags.size(); i++) { if (way.tags[i].key == key) { ways.push_back(id); break; } } delete data; } }
void VisitadorGP::visitData(const IData& d) { IShape* pS; d.getShape(&pS); // do something. Region r; pS->getMBR(r); // cout << "punto " << contador++ << ": " << r.m_pHigh[0] << " - " << r.m_pHigh[1] << endl; //cout << r.m_pHigh[0] << " " << r.m_pHigh[1] << endl; xy_pts_B.push_back(std::make_pair(r.m_pHigh[0], r.m_pHigh[1])); contador++; //cout<< "contador " << contador << endl; delete pS; // data should be an array of characters representing a Region as a string. byte* pData = 0; uint32_t cLen = 0; d.getData(cLen, &pData); // do something. //string s = reinterpret_cast<char*>(pData); //cout << s << endl; delete[] pData; //cout << d.getIdentifier() << endl; // the ID of this data entry is an answer to the query. I will just print it to stdout. }