+ don't process raster datasource
+ if src and dest projections are not matched
This commit is contained in:
parent
b3810a5f6a
commit
01076f87e3
1 changed files with 14 additions and 3 deletions
|
@ -136,17 +136,26 @@ private:
|
||||||
//wall_clock_progress_timer timer(clog, "end layer rendering: ");
|
//wall_clock_progress_timer timer(clog, "end layer rendering: ");
|
||||||
#endif
|
#endif
|
||||||
boost::shared_ptr<datasource> ds = lay.datasource();
|
boost::shared_ptr<datasource> ds = lay.datasource();
|
||||||
if (!ds) {
|
if (!ds)
|
||||||
|
{
|
||||||
std::clog << "WARNING: No datasource for layer '" << lay.name() << "'\n";
|
std::clog << "WARNING: No datasource for layer '" << lay.name() << "'\n";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
p.start_layer_processing(lay);
|
p.start_layer_processing(lay);
|
||||||
|
|
||||||
if (ds)
|
if (ds)
|
||||||
{
|
{
|
||||||
|
|
||||||
box2d<double> ext = m_.get_buffered_extent();
|
box2d<double> ext = m_.get_buffered_extent();
|
||||||
projection proj1(lay.srs());
|
projection proj1(lay.srs());
|
||||||
proj_transform prj_trans(proj0,proj1);
|
proj_transform prj_trans(proj0,proj1);
|
||||||
|
|
||||||
|
// todo: only display raster if src and dest proj are matched
|
||||||
|
// todo: add raster re-projection as an optional feature
|
||||||
|
if (ds->type() == datasource::Raster && !prj_trans.equal()) return;
|
||||||
|
//
|
||||||
|
|
||||||
box2d<double> layer_ext = lay.envelope();
|
box2d<double> layer_ext = lay.envelope();
|
||||||
|
|
||||||
double lx0 = layer_ext.minx();
|
double lx0 = layer_ext.minx();
|
||||||
|
@ -164,7 +173,7 @@ private:
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// clip query bbox
|
// clip query bbox
|
||||||
lx0 = std::max(ext.minx(),lx0);
|
lx0 = std::max(ext.minx(),lx0);
|
||||||
ly0 = std::max(ext.miny(),ly0);
|
ly0 = std::max(ext.miny(),ly0);
|
||||||
|
@ -244,8 +253,10 @@ private:
|
||||||
if_rules.push_back(const_cast<rule_type*>(&rule));
|
if_rules.push_back(const_cast<rule_type*>(&rule));
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ds->type() == datasource::Raster)
|
if (ds->type() == datasource::Raster )
|
||||||
{
|
{
|
||||||
|
|
||||||
|
|
||||||
if (ds->params().get<double>("filter_factor",0.0) == 0.0)
|
if (ds->params().get<double>("filter_factor",0.0) == 0.0)
|
||||||
{
|
{
|
||||||
rule_type::symbolizers const& symbols = rule.get_symbolizers();
|
rule_type::symbolizers const& symbols = rule.get_symbolizers();
|
||||||
|
|
Loading…
Reference in a new issue