@@ -466,6 +466,11 @@ void QgsDxfExport::writeTables()
466
466
QList< QgsMapLayer* >::const_iterator layerIt = mLayers .constBegin ();
467
467
for ( ; layerIt != mLayers .constEnd (); ++layerIt )
468
468
{
469
+ if ( !layerIsScaleBasedVisible (( *layerIt ) ) )
470
+ {
471
+ continue ;
472
+ }
473
+
469
474
writeGroup ( 0 , " LAYER" );
470
475
QString layerName = *layerIt ? ( *layerIt )->name () : " " ;
471
476
writeGroup ( 2 , dxfLayerName ( layerName ) );
@@ -559,15 +564,15 @@ void QgsDxfExport::writeEntities()
559
564
writeGroup ( 2 , " ENTITIES" );
560
565
561
566
// label engine
562
- QgsDxfPalLabeling labelEngine ( this , mExtent .isEmpty () ? dxfExtent () : mExtent , mSymbologyScaleDenominator );
567
+ QgsDxfPalLabeling labelEngine ( this , mExtent .isEmpty () ? dxfExtent () : mExtent , mSymbologyScaleDenominator , mMapUnits );
563
568
QgsRenderContext& ctx = labelEngine.renderContext ();
564
569
565
570
// iterate through the maplayers
566
571
QList< QgsMapLayer* >::iterator layerIt = mLayers .begin ();
567
572
for ( ; layerIt != mLayers .end (); ++layerIt )
568
573
{
569
574
QgsVectorLayer* vl = qobject_cast<QgsVectorLayer*>( *layerIt );
570
- if ( !vl )
575
+ if ( !vl || ! layerIsScaleBasedVisible ( vl ) )
571
576
{
572
577
continue ;
573
578
}
@@ -1340,6 +1345,22 @@ QString QgsDxfExport::dxfLayerName( const QString& name )
1340
1345
return layerName;
1341
1346
}
1342
1347
1348
+ bool QgsDxfExport::layerIsScaleBasedVisible ( const QgsMapLayer* layer ) const
1349
+ {
1350
+ if ( !layer )
1351
+ {
1352
+ return false ;
1353
+ }
1354
+
1355
+ if ( mSymbologyExport == QgsDxfExport::NoSymbology || !layer->hasScaleBasedVisibility () )
1356
+ {
1357
+ return true ;
1358
+ }
1359
+
1360
+ return ( layer->minimumScale () < mSymbologyScaleDenominator &&
1361
+ layer->minimumScale () > mSymbologyScaleDenominator );
1362
+ }
1363
+
1343
1364
/* *****************************************************Test with AC_1018 methods***************************************************************/
1344
1365
1345
1366
void QgsDxfExport::writeHeaderAC1018 ( QTextStream& stream )
0 commit comments