Saya memiliki koordinat x, y di lat / panjang dan saya harus membuat sel persegi 5x5 derajat di sekitar mereka, dengan koordinat lat / panjang menjadi centroid.
Opsi pertama saya adalah membuat buffer di sekitar centroid dengan 1 segmen dan jarak 1/2 (5 °) * sqrt (2) (harus dikalikan dengan sqrt (2) bc alat menggunakan centroid ke sudut persegi sebagai jarak buffer, berlawanan dengan centroid ke edge), yang menghasilkan kotak menyamping di sekitar titik saya, lalu putar setiap fitur sebesar 45 derajat. Saya lebih suka tidak melakukan ini karena jaraknya tidak terlalu tepat dan saya tidak tahu cara memutar setiap fitur buffer secara cepat.
Opsi kedua saya, yang tampaknya jauh lebih sederhana, adalah membuat buffer di sekitar centroid dengan jarak yang saya butuhkan ((1/2) * 5 °) dan kemudian menggunakan sesuatu seperti alat ArcMap's Feature to Envelope.
Saya melihat bahwa seseorang memiliki pertanyaan yang sama di sini dan jawaban diberikan, tetapi saya tidak tahu bagaimana melakukannya secara terprogram.
QgsMapLayerRegistry
dengan baris terakhir denganQgsProject
. Untuk info lebih lanjut, lihat iniQGIS 3 menyediakan alternatif cepat dan kotor: - Vektor -> Alat geoproses -> Penyangga
Pilih layer titik Anda sebagai lapisan input, pastikan bahwa gaya tutup ujung diatur ke kotak dan jaraknya harus setengah dari panjang kotak yang dimaksudkan (sehingga kotak 1 km per sisi harus memiliki Jarak 500 m).
sumber
Untuk mengubah poin menjadi kuadrat, Anda dapat mencoba
native:buffer
memproses algoritme denganEND_CAP_STYLE
parameter yang disetel ke2
(kotak).Peringatan! Hasil dapat bervariasi dan tergantung pada sistem koordinat lapisan input. Dalam exapmle, jika Anda menggunakan WGS 84 dan mengatur jarak ke
5000
ini akan menghasilkan garis persegi 5.000 derajat (bukan meter).Diuji dengan pyQGIS 3.6.1:
Contoh penggunaan:
sumber