+ ogr_5th_revision.patch (kunitoki rocks!)
This commit is contained in:
parent
a45e93b79a
commit
0fbfbd445a
3 changed files with 9 additions and 42 deletions
|
@ -69,25 +69,6 @@ ogr_datasource::ogr_datasource(parameters const& params)
|
|||
layer_->GetExtent (&envelope);
|
||||
extent_.init (envelope.MinX, envelope.MinY, envelope.MaxX, envelope.MaxY);
|
||||
|
||||
#if 0
|
||||
double x0 = -std::numeric_limits<float>::max(),
|
||||
y0 = -std::numeric_limits<float>::max(),
|
||||
x1 = std::numeric_limits<float>::max(),
|
||||
y1 = std::numeric_limits<float>::max();
|
||||
|
||||
for (int i = 0; i < dataset_->GetLayerCount (); i++)
|
||||
{
|
||||
OGRLayer* layer = dataset_->GetLayer (i);
|
||||
|
||||
layer->GetExtent (&envelope);
|
||||
|
||||
x0 = std::min (envelope.MinX, x0);
|
||||
y0 = std::min (envelope.MinY, y0);
|
||||
x1 = std::max (envelope.MaxX, x1);
|
||||
y1 = std::max (envelope.MaxY, y1);
|
||||
}
|
||||
#endif
|
||||
|
||||
OGRFeatureDefn* def = layer_->GetLayerDefn ();
|
||||
if (def != 0)
|
||||
{
|
||||
|
|
|
@ -79,6 +79,7 @@ ogr_featureset::ogr_featureset(OGRDataSource & dataset,
|
|||
bool multiple_geometries)
|
||||
: dataset_(dataset),
|
||||
layer_(layer),
|
||||
layerdef_(layer.GetLayerDefn()),
|
||||
tr_(new transcoder(encoding)),
|
||||
fidcolumn_(layer_.GetFIDColumn ()),
|
||||
multiple_geometries_(multiple_geometries)
|
||||
|
@ -100,40 +101,39 @@ feature_ptr ogr_featureset::next()
|
|||
|
||||
convert_geometry (geom, feature);
|
||||
|
||||
OGRFeatureDefn* def = layer_.GetLayerDefn();
|
||||
int fld_count = def->GetFieldCount();
|
||||
int fld_count = layerdef_->GetFieldCount();
|
||||
for (int i = 0; i < fld_count; i++)
|
||||
{
|
||||
OGRFieldDefn* fld = def->GetFieldDefn (i);
|
||||
OGRFieldDefn* fld = layerdef_->GetFieldDefn (i);
|
||||
OGRFieldType type_oid = fld->GetType ();
|
||||
std_string name = fld->GetNameRef ();
|
||||
std_string fld_name = fld->GetNameRef ();
|
||||
|
||||
switch (type_oid)
|
||||
{
|
||||
case OFTInteger:
|
||||
{
|
||||
boost::put(*feature,name,(*feat)->GetFieldAsInteger (i));
|
||||
boost::put(*feature,fld_name,(*feat)->GetFieldAsInteger (i));
|
||||
break;
|
||||
}
|
||||
|
||||
case OFTReal:
|
||||
{
|
||||
boost::put(*feature,name,(*feat)->GetFieldAsDouble (i));
|
||||
boost::put(*feature,fld_name,(*feat)->GetFieldAsDouble (i));
|
||||
break;
|
||||
}
|
||||
|
||||
case OFTString:
|
||||
case OFTWideString: // deprecated !
|
||||
case OFTWideStringList: // deprecated !
|
||||
{
|
||||
UnicodeString ustr = tr_->transcode((*feat)->GetFieldAsString (i));
|
||||
boost::put(*feature,name,ustr);
|
||||
boost::put(*feature,fld_name,ustr);
|
||||
break;
|
||||
}
|
||||
|
||||
case OFTIntegerList:
|
||||
case OFTRealList:
|
||||
case OFTStringList:
|
||||
case OFTWideStringList: // deprecated !
|
||||
{
|
||||
#ifdef MAPNIK_DEBUG
|
||||
clog << "unhandled type_oid=" << type_oid << endl;
|
||||
|
@ -177,12 +177,6 @@ feature_ptr ogr_featureset::next()
|
|||
return feature_ptr();
|
||||
}
|
||||
|
||||
int ogr_featureset::endian()
|
||||
{
|
||||
const int t = 1;
|
||||
return (*(char*)&t == 0) ? wkbXDR : wkbNDR;
|
||||
}
|
||||
|
||||
void ogr_featureset::convert_geometry (OGRGeometry* geom, feature_ptr feature)
|
||||
{
|
||||
switch (wkbFlatten (geom->getGeometryType()))
|
||||
|
@ -409,11 +403,3 @@ void ogr_featureset::convert_collection (OGRGeometryCollection* geom, feature_pt
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
int size=geom->WkbSize ();
|
||||
char data[size];
|
||||
geom->exportToWkb ((OGRwkbByteOrder) endian(), reinterpret_cast<unsigned char*>(&data[0]));
|
||||
geometry_utils::from_wkb (*feature, &data[0], size, multiple_geometries_);
|
||||
*/
|
||||
|
||||
|
|
|
@ -44,7 +44,6 @@ class ogr_featureset : public mapnik::Featureset
|
|||
virtual ~ogr_featureset();
|
||||
mapnik::feature_ptr next();
|
||||
private:
|
||||
int endian();
|
||||
void convert_geometry (OGRGeometry* geom, mapnik::feature_ptr feature);
|
||||
void convert_point (OGRPoint* geom, mapnik::feature_ptr feature);
|
||||
void convert_linestring (OGRLineString* geom, mapnik::feature_ptr feature);
|
||||
|
@ -58,6 +57,7 @@ class ogr_featureset : public mapnik::Featureset
|
|||
void convert_collection (OGRGeometryCollection* geom, mapnik::feature_ptr feature);
|
||||
OGRDataSource & dataset_;
|
||||
OGRLayer & layer_;
|
||||
OGRFeatureDefn * layerdef_;
|
||||
boost::scoped_ptr<mapnik::transcoder> tr_;
|
||||
const char* fidcolumn_;
|
||||
bool multiple_geometries_;
|
||||
|
|
Loading…
Reference in a new issue