postgres db 에 저장된 다각형의 점을 검색하고 싶습니다. DB를 의 내용은 다음과Libpqxx를 사용하여 Postgres에 저장된 다각형의 점에 어떻게 액세스합니까?
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))
정점 컬럼 형 다각형이다.
저는 C++ 용 libpqxx 라이브러리를 사용하고 있습니다.
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..)
}
미안 libpqxx 매우 새로 온 :
은 가정하자 나는 내가 C++에서이 문을 실행할 것, 검색하고 정점 열에서 포인트를 액세스하려는. libpqxx 이 어떻게 작동하는지 꽤 많이 이해했지만 Polygon 유형이 붙어 있습니다. Postgres에서 우리의 폴리곤에 대한 간단한 저장소가 필요하지만 libpqxx를 사용하여 에 액세스하는 방법을 모르겠습니다.
안녕하세요. 실제로 r [1] .c_str()을 사용하여 문자열로 검색 할 수 있습니다. 그런 다음 문자열을 구문 분석하여 값을 가져옵니다. 우리가 얻는 문자열은 ((3,3), (4,4), (5,5))와 같습니다. 그걸로 우리는 그것을 파싱 할 수 있지만 이것을 최후의 수단으로 들고 있습니다. 그것이 그걸 할 수있는 유일한 방법이라면 파싱이 답입니다. 하지만 libpqxx에 대한 리소스가 많지 않기 때문에 이것이 최선의 방법인지 확실하지 않습니다. –