Saya memiliki shapefile yang terdiri dari sejumlah poligon. Poligon tetangga sering berbagi atribut.
Yang perlu saya lakukan adalah buffer poligon ini berdasarkan atribut umum. Namun, saya ingin memperluas buffer tersebut sampai mereka bertemu, pada titik mana mereka bisa berhenti.
Saya memiliki mock-up yang disusun dengan tergesa-gesa:
Yang saya punya kode-bijaksana adalah sebagai berikut:
from qgis.core import *
from qgis.analysis import *
layer=qgis.utils.iface.activeLayer()
QgsGeometryAnalyzer().dissolve(layer, "D:/test_dissolved.shp", onlySelectedFeatures=False, uniqueIdField=3, p=None)
Sejujurnya saya tidak terlalu fasih dalam dokumentasi QGIS API dan meskipun upaya terbaik saya, saya tidak dapat menemukan metode yang cocok untuk ini.
QgsGeometryAnalyzer().dissolve
memungkinkan saya untuk melarutkan buffer tetapi bukan itu yang saya kejar.
Haruskah aku mencari ke arah lain di sini?
Anda mungkin ingin menjelajahi fungsi analisis raster. Lihat Membuat centreline untuk setiap poligon dalam basis data ngarai bawah laut menggunakan ArcGIS untuk Desktop Basic? dan Membuat poligon Thiessen (Voronoi) menggunakan garis (bukan titik) sebagai fitur input? untuk inspirasi lebih lanjut.
Ini mengharuskan Anda untuk menggunakan resolusi raster yang sesuai tentunya.
sumber
Saya punya tugas yang agak terkait hari lain. Dalam teori, voronoi poligon dengan centrepoint bangunan (tertimbang) seharusnya hanya menjadi solusi untuk kasus Anda tetapi tidak berhasil untuk saya; PostgreSQL bukan yang Anda minta, tetapi, sebagai solusi, jika itu adalah 'garis tengah' antara setiap bangunan yang Anda cari untuk langkah pertama, menggunakan PostGIS ST_ApproximateMedialAxis mungkin patut dicoba. Anda harus membuat poligon dasar untuk seluruh area studi dan memotong poligon bangunan sebelum menerapkan fungsi pada poligon dasar untuk mendapatkan hasil terkait. Bisa bekerja, mungkin tidak ...
sumber