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
하고 예를 들어 pdf로 저장하십시오. 요리 책은 말합니다 :
독립형 애플리케이션에서 작성기를 사용하는 경우 위 섹션에 표시된 것과 동일한 방식으로 고유 한 맵 렌더러 인스턴스를 작성하여 컴포지션에 전달할 수 있습니다.
내가 할 수 없었던이 비트는 모든 시도가 빈지도 또는 segfault를 얻습니다. qgis 1.8.0을 사용하여 Linux mint 13을 실행 중입니다. 누군가가 간단한 예제를 작곡가를 사용하는 예제로 수정하는 방법을 보여줄 수 있다면 좋을 것입니다.