답변:
상기 봐 가지고 PyQGIS 요리 책을 .
벡터 레이어를 반복하는 방법에 대한 예제를 따르십시오. 지오메트리에 액세스하면 buffer () 메소드를 적용 할 수 있습니다. QGIS API도 참조하십시오 : http://www.qgis.org/api/classQgsGeometry.html#a98208752e1beb1a5d3a7eedffbfdb2e4
PyQGIS Console로 원하는 것을 얻는 방법은 여러 가지가 있습니다.
from qgis.utils import iface
from qgis.analysis import QgsGeometryAnalyzer
mc = iface.mapCanvas()
layer = mc.currentLayer()
QgsGeometryAnalyzer().buffer(layer, "path_to/output.shp", 500, False, False, -1)
from sextante.core.Sextante import Sextante
Sextante.runalg("ftools:fixeddistancebuffer","input_path.shp", False, 500, 5, True, "output_path_buffer.shp")
sextante 매개 변수를 얻으려면 Sextante.alghelp("ftools:fixeddistancebuffer")
PyQGIS Console에 입력하십시오 .
도움이 되었기를 바랍니다 !
기본 코드를 원하면 다음을 시도해보십시오.
#Don't forget to Toggle Editing
lyr = qgis.utils.iface.activeLayer()
provider = lyr.dataProvider()
feat= QgsFeature()
alls = provider.attributeIndexes()
provider.select(alls)
while provider.nextFeature(feat):
buff = feat.geometry().buffer(5,2)
lyr.dataProvider().changeGeometryValues({feat.id(): buff})
마지막 답장에 추가 할 것이 조금 있습니다.
주어진 주제에 대한 SEXTANTE 알고리즘을 검색하려면 Sextante.alglist ()를 사용하십시오. 예를 들어 "버퍼"가 포함 된 것을 검색하는 경우
>>> from sextante.core.Sextante import Sextante
>>> Sextante.alglist("buffer")
그리고 당신은 얻을 것이다 :
Grid Buffer------------------------------------------>saga:gridbuffer
Grid Proximity Buffer-------------------------------->saga:gridproximitybuffer
Shapes Buffer---------------------------------------->saga:shapesbuffer
Threshold Buffer------------------------------------->saga:thresholdbuffer
Fixed distance buffer-------------------------------->ftools:fixeddistancebuffer
Variable distance buffer----------------------------->ftools:variabledistancebuffer
r.buffer - Creates a raster map layer showing buffer zones surrounding cells that contain non-NULL category values.--->grass:r.buffer
v.buffer.angle--------------------------------------->grass:v.buffer.angl
v.buffer.column - Creates a buffer around features of given type.--->grass:v.buffer.column
v.buffer.distance - Creates a buffer around features of given type.--->grass:v.buffer.distance
v.buffer.minordistance------------------------------->grass:v.buffer.minordistance
이렇게하면 호출 할 알고리즘의 이름을 찾을 수 있습니다 (위의 회신에서 제안 된 예에서 ftools : fixeddistancebuffer)
SEXTANTE에서 스크립트를 새로운 알고리즘으로 바꿀 수 있습니다. SEXTANTE 문서에는 이에 대한 자세한 정보가 있습니다.