+ consider metadata first when calculating extent
This commit is contained in:
parent
f71870b5b8
commit
bba0b61dfc
1 changed files with 18 additions and 17 deletions
|
@ -492,7 +492,23 @@ public:
|
||||||
std::string const& table
|
std::string const& table
|
||||||
)
|
)
|
||||||
{
|
{
|
||||||
if (has_spatial_index)
|
if (! metadata.empty())
|
||||||
|
{
|
||||||
|
std::ostringstream s;
|
||||||
|
s << "SELECT xmin, ymin, xmax, ymax FROM " << metadata;
|
||||||
|
s << " WHERE LOWER(f_table_name) = LOWER('" << geometry_table << "')";
|
||||||
|
boost::shared_ptr<sqlite_resultset> rs(ds->execute_query(s.str()));
|
||||||
|
if (rs->is_valid() && rs->step_next())
|
||||||
|
{
|
||||||
|
double xmin = rs->column_double(0);
|
||||||
|
double ymin = rs->column_double(1);
|
||||||
|
double xmax = rs->column_double(2);
|
||||||
|
double ymax = rs->column_double(3);
|
||||||
|
extent.init (xmin, ymin, xmax, ymax);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (has_spatial_index)
|
||||||
{
|
{
|
||||||
std::ostringstream s;
|
std::ostringstream s;
|
||||||
s << "SELECT MIN(xmin), MIN(ymin), MAX(xmax), MAX(ymax) FROM "
|
s << "SELECT MIN(xmin), MIN(ymin), MAX(xmax), MAX(ymax) FROM "
|
||||||
|
@ -512,22 +528,7 @@ public:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (! metadata.empty())
|
|
||||||
{
|
|
||||||
std::ostringstream s;
|
|
||||||
s << "SELECT xmin, ymin, xmax, ymax FROM " << metadata;
|
|
||||||
s << " WHERE LOWER(f_table_name) = LOWER('" << geometry_table << "')";
|
|
||||||
boost::shared_ptr<sqlite_resultset> rs(ds->execute_query(s.str()));
|
|
||||||
if (rs->is_valid() && rs->step_next())
|
|
||||||
{
|
|
||||||
double xmin = rs->column_double(0);
|
|
||||||
double ymin = rs->column_double(1);
|
|
||||||
double xmax = rs->column_double(2);
|
|
||||||
double ymax = rs->column_double(3);
|
|
||||||
extent.init (xmin, ymin, xmax, ymax);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else if (! key_field.empty())
|
else if (! key_field.empty())
|
||||||
{
|
{
|
||||||
std::ostringstream s;
|
std::ostringstream s;
|
||||||
|
|
Loading…
Add table
Reference in a new issue