Update of /cvsroot/playerstage/code/player/server/drivers/vectormap
In directory 
sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv4036/server/drivers/vectormap

Modified Files:
        dbconn.cc dbconn.h postgis.cc 
Log Message:
added extra ttribute to vector map interface


Index: dbconn.cc
===================================================================
RCS file: /cvsroot/playerstage/code/player/server/drivers/vectormap/dbconn.cc,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** dbconn.cc   24 Oct 2007 22:32:04 -0000      1.3
--- dbconn.cc   7 Dec 2007 04:31:45 -0000       1.4
***************
*** 132,136 ****
  
    // need to get name count, name, wkb count, wkb
!   const char* template_data = "SELECT name, asbinary(geom) FROM %s;";
    char query_data[MAX_PSQL_STRING];
    memset(query_data, 0, sizeof(MAX_PSQL_STRING));
--- 132,136 ----
  
    // need to get name count, name, wkb count, wkb
!   const char* template_data = "SELECT name, asbinary(geom), attrib FROM %s;";
    char query_data[MAX_PSQL_STRING];
    memset(query_data, 0, sizeof(MAX_PSQL_STRING));
***************
*** 153,163 ****
  
    int num_rows = PQntuples(res);
! 
    for (int i=0; i<num_rows; ++i)
    {
      FeatureDataHolder fd(string(PQgetvalue(res, i, 0)));
      uint8_t *wkb = reinterpret_cast<uint8_t *>(PQgetvalue(res, i, 1));
      uint32_t length = PQgetlength(res, i, 1);
      fd.wkb.assign(wkb, &wkb[length]);
      data.features.push_back(fd);
    }
--- 153,167 ----
  
    int num_rows = PQntuples(res);
!   data.name = layer_name;
    for (int i=0; i<num_rows; ++i)
    {
      FeatureDataHolder fd(string(PQgetvalue(res, i, 0)));
+     
      uint8_t *wkb = reinterpret_cast<uint8_t *>(PQgetvalue(res, i, 1));
      uint32_t length = PQgetlength(res, i, 1);
      fd.wkb.assign(wkb, &wkb[length]);
+     
+     fd.attrib = string(PQgetvalue(res, i, 2));
+     
      data.features.push_back(fd);
    }
***************
*** 261,264 ****
--- 265,270 ----
    feature_data.wkb = new uint8_t[wkb.size()];
    feature_data.wkb_count = wkb.size();
+   feature_data.attrib = strdup(attrib.c_str());
+   feature_data.attrib_count = attrib.size() + 1;
    ///TODO: Make more efficient
    for (uint32_t ii=0; ii<wkb.size(); ++ii)
***************
*** 279,282 ****
--- 285,290 ----
  const player_vectormap_layer_data_t* LayerDataHolder::Convert()
  {
+   layer_data.name = strdup(name.c_str());
+   layer_data.name_count = name.size()+1;
    layer_data.features_count = features.size();
    layer_data.features = new player_vectormap_feature_data_t[features.size()];
***************
*** 285,288 ****
--- 293,297 ----
      layer_data.features[ii] = *(features[ii].Convert());
    }
+   
    return &layer_data;
  }

Index: dbconn.h
===================================================================
RCS file: /cvsroot/playerstage/code/player/server/drivers/vectormap/dbconn.h,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** dbconn.h    24 Oct 2007 22:32:04 -0000      1.4
--- dbconn.h    7 Dec 2007 04:31:45 -0000       1.5
***************
*** 31,34 ****
--- 31,35 ----
      string name;
      vector<uint8_t> wkb;
+     string attrib;
      player_vectormap_feature_data_t feature_data;
  };

Index: postgis.cc
===================================================================
RCS file: /cvsroot/playerstage/code/player/server/drivers/vectormap/postgis.cc,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** postgis.cc  24 Oct 2007 22:32:04 -0000      1.6
--- postgis.cc  7 Dec 2007 04:31:45 -0000       1.7
***************
*** 312,319 ****
                                        this->device_addr))
    {
!     player_vectormap_layer_data_t* request = 
reinterpret_cast<player_vectormap_layer_data_t*>(data);
      LayerDataHolder ldata = RequestLayerData(request->name);
      const player_vectormap_layer_data_t* response = ldata.Convert();
- 
      this->Publish(this->device_addr,
                    resp_queue,
--- 312,318 ----
                                        this->device_addr))
    {
!         player_vectormap_layer_data_t* request = 
reinterpret_cast<player_vectormap_layer_data_t*>(data);
      LayerDataHolder ldata = RequestLayerData(request->name);
      const player_vectormap_layer_data_t* response = ldata.Convert();
      this->Publish(this->device_addr,
                    resp_queue,


-------------------------------------------------------------------------
SF.Net email is sponsored by:
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://sourceforge.net/services/buy/index.php
_______________________________________________
Playerstage-commit mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/playerstage-commit

Reply via email to