Dosyadan bir baskı bestecisi yüklemek, bir atlas oluşturmak ve görüntüye vermek için bir eklenti oluşturmaya çalışıyorum. Şimdiye kadar şablonu yükleme ve görüntüye aktarma konusunda başarılı oldum.
Boş harita ve alan ifadeleri hiçbiri ile sonuçlanan verilen haritaya efsane katmanları (toc da) ekleyemedim.
# Get layers in the legend and append, must be a cleaner way to do this?
layers = self.iface.legendInterface().layers()
layerStringList = []
for layer in layers:
layerID = layer.id()
layerStringList.append(layerID)
# Add layer to map render
myMapRenderer = QgsMapRenderer()
myMapRenderer.setLayerSet(layerStringList)
myMapRenderer.setProjectionsEnabled(False)
# Load template
myComposition = QgsComposition(myMapRenderer)
myFile = os.path.join(os.path.dirname(__file__), 'MMR_Template.qpt')
myTemplateFile = file(myFile, 'rt')
myTemplateContent = myTemplateFile.read()
myTemplateFile.close()
myDocument = QDomDocument()
myDocument.setContent(myTemplateContent)
myComposition.loadFromTemplate(myDocument)
# Save image
myImagePath = os.path.join(os.path.dirname(__file__), 'come_on.png')
myImage = myComposition.printPageAsRaster(0)
myImage.save(myImagePath)
Atlas'ı kurması gereken yüklü şablondan bir snippet:
<Atlas hideCoverage="false" featureFilter="reference = '61922'" coverageLayer="desktop_search20130615160118593" fixedScale="true" composerMap="0" singleFile="false" filenamePattern=""reference"" enabled="true" filterFeatures="true" sortFeatures="true" sortKey="0" sortAscending="true" margin="1"/>
Ayrıca toc tüm katman QgsMapRenderer () örneğine eklemek için en iyi yolu emin değilim.
Teşekkürler