मैं फ़ाइल से एक प्रिंट संगीतकार लोड करने के लिए एक प्लगइन बनाने की कोशिश कर रहा हूं, एक एटलस उत्पन्न कर सकता हूं और छवि को निर्यात कर सकता हूं। अब तक मैं टेम्पलेट को लोड करने और छवि को निर्यात करने में सफल रहा हूं।
मैं किंवदंती में किसी भी परत को जोड़ने में असमर्थ रहा हूँ (जो कि inc में भी हैं) निर्यात किए गए नक्शे में, जिसके परिणामस्वरूप रिक्त नक्शा होता है और कोई भी क्षेत्र कार्य नहीं करता है।
# 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 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"/>
मैं QgsMapRenderer () के उदाहरण के लिए toc में सभी परत को जोड़ने के लिए सबसे अच्छे तरीके से अनिश्चित हूं।
धन्यवाद