[Liblas-commits] hg-main-tree: SDO_GEOMETRY blk_extent fetching for readBuffer

liblas-commits at liblas.org liblas-commits at liblas.org
Mon Apr 4 09:04:26 EDT 2011


details:   http://hg.libpc.orghg-main-tree/rev/14d777a4d0be
changeset: 495:14d777a4d0be
user:      Howard Butler <hobu.inc at gmail.com>
date:      Mon Apr 04 08:04:16 2011 -0500
description:
SDO_GEOMETRY blk_extent fetching for readBuffer

diffstat:

 src/drivers/oci/Iterator.cpp |  25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)

diffs (44 lines):

diff -r 2b5fb0845fb4 -r 14d777a4d0be src/drivers/oci/Iterator.cpp
--- a/src/drivers/oci/Iterator.cpp	Fri Apr 01 16:02:02 2011 -0500
+++ b/src/drivers/oci/Iterator.cpp	Mon Apr 04 08:04:16 2011 -0500
@@ -70,6 +70,10 @@
     else if (m_querytype == QUERY_BLK_TABLE)
     {
         doBlockTableDefine();
+        reader.getConnection()->CreateType(&(m_block->blk_extent));
+        reader.getConnection()->CreateType(&(m_block->blk_extent->sdo_ordinates), reader.getConnection()->GetOrdinateType());
+        reader.getConnection()->CreateType(&(m_block->blk_extent->sdo_elem_info), reader.getConnection()->GetElemInfoType());
+
     }
     
     // setNumPoints(1000);
@@ -119,8 +123,29 @@
     if (!read_all_data) throw libpc_error("Did not read all blob data!");
     std::cout << "nAmountRead: " << nAmountRead << std::endl;
 
+    double x, y, z;
+    
+    boost::int32_t elem1, elem2, elem3;
+    m_statement->GetElement(&(m_block->blk_extent->sdo_elem_info), 0, &elem1);
+    m_statement->GetElement(&(m_block->blk_extent->sdo_elem_info), 1, &elem2);
+    m_statement->GetElement(&(m_block->blk_extent->sdo_elem_info), 2, &elem3);
 
+    boost::int32_t gtype, srid;
+    gtype= m_statement->GetInteger(&(m_block->blk_extent->sdo_gtype));
+    srid =m_statement->GetInteger(&(m_block->blk_extent->sdo_srid));
 
+    std::cout << "gtype: " << gtype << std::endl;
+    std::cout << "srid: " << srid << std::endl;
+    
+    std::cout << "elem1, elem2, elem3 " << elem1 << " " << elem2 << " " << elem3 << std::endl;
+    
+    std::cout.setf(std::ios_base::fixed, std::ios_base::floatfield);
+    std::cout.precision(6);
+    m_statement->GetElement(&(m_block->blk_extent->sdo_ordinates), 0, &x);
+    m_statement->GetElement(&(m_block->blk_extent->sdo_ordinates), 1, &y);
+    m_statement->GetElement(&(m_block->blk_extent->sdo_ordinates), 2, &z);
+
+    std::cout << "x, y, z " << x << " " << y << " " << z << std::endl;
     
     // bool read = m_reader.fetchNext();
     // Block* block = m_reader.getBlock();


More information about the Liblas-commits mailing list