मैं pyqgis रसोई की किताब से नक्शा प्रतिपादन अनुभाग का पालन करने की कोशिश कर रहा हूं , लेकिन मैं इसे स्टैंडअलोन एप्लिकेशन के रूप में परीक्षण करना चाहूंगा। मैं पहला भाग कर सकता हूं, सरल रेंडरिंग का उपयोग कर सकता हूं, लेकिन मैं एक स्टैंडअलोन स्क्रिप्ट के रूप में मैप कंपोजर का उपयोग करके दूसरा उदाहरण कर रहा हूं।
यहाँ बिट के लिए एक स्टैंडअलोन उदाहरण दिया जा सकता है:
from qgis.core import *
from qgis.gui import *
from PyQt4.QtCore import *
from PyQt4.QtGui import *
from PyQt4.QtXml import *
QgsApplication.setPrefixPath("/usr/", True)
QgsApplication.initQgis()
fh = open("eg.csv","w")
fh.write("""
x,y,name
153.0278, -27.4679, Brisbane
144.2500, -23.4500, Longreach
145.7753, -16.9256, Cairns
""")
fh.close()
uri = "eg.csv?delimiter=%s&xField=%s&yField=%s" % (",", "x", "y")
layer = QgsVectorLayer(uri, "eglayer", "delimitedtext")
QgsMapLayerRegistry.instance().addMapLayer(layer)
img = QImage(QSize(800,600), QImage.Format_ARGB32_Premultiplied)
color = QColor(255,255,255)
img.fill(color.rgb())
p = QPainter()
p.begin(img)
render = QgsMapRenderer()
lst = [ layer.getLayerID() ] # add ID of every layer
render.setLayerSet(lst)
rect = QgsRectangle(render.fullExtent())
rect.scale(1.1)
render.setExtent(rect)
render.setOutputSize(img.size(), img.logicalDpiX())
render.render(p)
p.end()
img.save("render.png","png")
मैं वास्तव में जो करना चाहता हूं, वही है, लेकिन उपयोग करें QgsComposition
, और उदाहरण के लिए पीडीऍफ़ में सेव करें। रसोई की किताब कहते हैं:
एक स्टैंडअलोन एप्लिकेशन में कंपोजर का उपयोग करते समय, आप अपना मैप रेंडरर इंस्टेंस उसी तरह बना सकते हैं, जैसा कि ऊपर के अनुभाग में दिखाया गया है और इसे रचना में पास करें।
यह बिट मैं नहीं कर सकता, मेरे सभी प्रयासों को या तो एक खाली नक्शा मिलता है, या एक segfault। मैं qgis 1.8.0 का उपयोग करके लिनक्स मिंट 13 चला रहा हूं। यह बहुत अच्छा होगा अगर कोई मुझे दिखा सकता है कि संगीतकार का उपयोग करने वाले सरल उदाहरण को कैसे संशोधित किया जाए।