diff --git a/plugins/input/ogr/ogr_datasource.cpp b/plugins/input/ogr/ogr_datasource.cpp index 38007b04c..222a045bc 100644 --- a/plugins/input/ogr/ogr_datasource.cpp +++ b/plugins/input/ogr/ogr_datasource.cpp @@ -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::max(), - y0 = -std::numeric_limits::max(), - x1 = std::numeric_limits::max(), - y1 = std::numeric_limits::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) { diff --git a/plugins/input/ogr/ogr_featureset.cpp b/plugins/input/ogr/ogr_featureset.cpp index a103e3e15..bf40634a1 100644 --- a/plugins/input/ogr/ogr_featureset.cpp +++ b/plugins/input/ogr/ogr_featureset.cpp @@ -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(&data[0])); - geometry_utils::from_wkb (*feature, &data[0], size, multiple_geometries_); -*/ - diff --git a/plugins/input/ogr/ogr_featureset.hpp b/plugins/input/ogr/ogr_featureset.hpp index e861c02ec..de0e142e5 100644 --- a/plugins/input/ogr/ogr_featureset.hpp +++ b/plugins/input/ogr/ogr_featureset.hpp @@ -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 tr_; const char* fidcolumn_; bool multiple_geometries_;