Estoy tratando de seguir el mapa de representación de la sección de la pyqgis libro de cocina, pero me gustaría probar esta como una aplicación independiente. Puedo hacer la primera parte, mediante una simple representación, pero estoy un poco atascado haciendo el segundo ejemplo utilizando el mapa compositor como una secuencia de comandos independiente.
Aquí es independiente de ejemplo para los bits que puedo hacer:
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")
Lo que realmente me gustaría hacer es el mismo, pero el uso de QgsComposition
, y guardar como por ejemplo pdf. El libro de cocina dice:
Cuando se utiliza el compositor en una aplicación independiente, usted puede crear su propio mapa de la instancia de procesador de la misma manera como se muestra en la sección anterior y se pasa a la composición.
Este bit no podía hacer, todos mis intentos de obtener un mapa vacío, o una violación de segmento. Yo estoy usando linux mint 13, utilizando qgis 1.8.0. Sería genial si alguien podría enseñarme cómo modificar el sencillo ejemplo que utiliza el compositor.