I know that this is the postgres forum and not the libpqxx forum (I've been there but no answer yet).
I want to retrieve the points of a polygon that are stored in the postgres db. The contents of the db are:
polygonid |vertices
-----------+---------------------------------------------------------------------
2 |((1,0),(1.5,-1),(2,-1),(2,1),(1,1),(0,0),(0,2),(3,2),(3,-2),(1,-2))
4 | ((3,3),(4,4),(5,5))
The vertices column is of type Polygon.
I'm using libpqxx library for C++.
Suppose I want to retrieve and access the points in the vertices column, I would execute these statements in C++:
result R = W.exec ("select * from polygon_tbl");
for (result::const_iterator r = R.begin();
r != R.end();
++r)
{
int x = 0;
cout << "Polygon ID: " << r[0].to(x) << endl;
//Suppose i would like to print the first point of every polygon,
//how would i access it?
cout << "First vertex: " << r[1][0] << endl; ???
//Or suppose i would like to print the first x coordinate of
//every polygon, how would i access it?
cout << "First x coordinate: " << r[1][0][0] << endl; //???? (am just guessing here..)
}
Sorry I'm very new to libpqxx. I've pretty much understood how the libpqxx works but I'm stuck with the Polygon types. We actually just need a simple storage for our polygons in Postgres but I'm not sure how to access them using libpqxx. I know I can parse it as a string using r[1].c_str(), but is this the proper way to do it (parsing the text)? Or is there a container that I should use to store the vertices and access them using the container ?
mark