int main() { RTree tree; for(int i = 0;i < DATA_NUMBER; ++i) { double min[2],max[2]; min[0] = rand() % MAP_SIZE; max[0] = min[0]; min[1] = rand() % MAP_SIZE; max[1] = min[1]; tree.Insert(min, max, i); //Insert (x,y,id) } outFileData(&tree); //tree.fileInsert("data.txt"); //tree.printRec(tree.getMBR(tree.getRoot())); RTree::Iterator it; for( tree.GetFirst(it); !tree.IsNull(it); tree.GetNext(it) ) { int value = tree.GetAt(it); double x,y; it.GetCard(&x,&y); cout << "ID " << value << " : " << "(" << x << "," << y << ")" << endl; } Table1 table1; Table2 table2; Table3 table3; generateTable(&tree,&table1,&table2,&table3); printTable(&table1,&table2,&table3); outFileTable(&table1,&table2,&table3); TimeCounter tc; double CreateTime = 0.0; tc.StartTime(); cout << QueryPlan(&tree,K_NEAREST) << endl; CreateTime = tc.EndTime(); cout << "QueryPlan Time: " << CreateTime << " ms" << endl; // outFileRect(&tree); system("pause"); return 0; }