siapa saja yang bisa membantu. saya hanya ingin menambahkan arah (Bantalan: yaitu N 25 35 E) dan Jarak (Panjang: 125 meter) sebagai bidang baru saya di data garis / garis. apakah ada plug-in untuk menghasilkan bidang ini? saya mencoba menggunakan "ekspor / tambahkan kolom geometri" di data baris saya, tetapi hanya nilai "Panjang" yang ditambahkan.
18
Jawaban:
Anda dapat menghitung bearing dalam Field Calculator di QGIS. Ini berfungsi dalam UTM (metrik) berkoordinasi pada jarak kecil (ratusan km), tetapi sesuatu yang lebih canggih akan dibutuhkan untuk jarak besar atau untuk derajat desimal.
Buka tabel atribut untuk lapisan baris Anda, beralih pengeditan, dan klik tombol Kalkulator Bidang untuk membuka dialog:
Buat bidang baru sebagai desimal dengan presisi 1 atau 2.
Rekatkan kode ini ke kotak "Ekspresi", dan klik "OK":
(atan((xat(-1)-xat(0))/(yat(-1)-yat(0)))) * 180/3.14159 + (180 *(((yat(-1)-yat(0)) < 0) + (((xat(-1)-xat(0)) < 0 AND (yat(-1) - yat(0)) >0)*2)))
Bagian pertama menghitung garis singgung terbalik dari perbedaan x dan y dan mengubahnya menjadi derajat (180 / pi). Bagian kedua menambahkan 180 atau 360 ke gambar yang dihasilkan untuk memberikan bantalan dari 0-360 °.
sumber
Anda tidak perlu plugin. Semuanya ada di kelas QgsPoint dari PyQGIS
Jika Anda memeriksa konten kelas titik QGIS dengan fungsi dir () fungsi Python di Python Console.
Anda dapat melihat ada fungsi azimuth dan sqrDist dan setelah beberapa kali mencoba:
Masalah
Jadi di konsol Python
sekarang xy berisi semua node (titik) dari baris
Menggunakan semua titik simpul dari garis:
1) titik azimuth i ke titik i + 1 (+/- 180 °) (simpul garis)
2) jarak euclidean antara titik i dan titik i +1
Setelah itu, tidak terlalu sulit untuk menambahkan nilai-nilai ini ke tabel atribut.
Saya menggunakan teknik ini untuk menganalisis kelurusan (geologi) dengan matplotlib dan plugin Script Runner
sumber
Solusi yang disediakan oleh @Simbamangu cukup efektif tetapi tidak mencakup semua kasus. Misalnya, menerapkan rumus dengan perpindahan horisontal akan NULL hasilnya, jadi Anda harus menggunakan formulasi ini dalam Field Calculator of QGIS
sumber