Saya mencoba membuat ulang plot Asal-Tujuan seperti ini:
Saya telah berhasil memasukkan data ke dalam tabel MSOA ke LAD dan dapat menggambar peta seperti ini untuk salah satu MSOA asal.
Yang pernah Anda izinkan untuk jarak (sekarang konyol) orang-orang di Peak District pergi bekerja dekat.
Tapi saya cukup suka efek yang penulis capai dengan "melebarkan" garis. Jelas, dengan aliran 522 dan 371, saya tidak bisa menggunakan satu baris per komuter tetapi akan lebih baik untuk menghasilkan garis garis proporsional untuk menunjukkan jumlah orang yang melakukan perjalanan.
Saya berpikir bahwa saya akan dapat menggunakan Generator Geometri tetapi tanpa konstruksi lingkaran, saya tidak bisa membuat kemajuan.
qgis-3
geometry-generator
Ian Turton
sumber
sumber
Jawaban:
Tantangan besar!
Jawaban ini terutama menggunakan generator Geometri dan ditulis dalam QGIS 3.2. QGIS mogok (tanpa saya menyimpan!) Tepat setelah saya pertama kali membangun garis dan saya hampir menyerah, tetapi daftar ekspresi yang baru digunakan menyelamatkan hari - bonus lain untuk menggunakan generator Geometri
Saya mulai dengan dua set poin, satu sumber dan tiga tujuan. Tujuan diberi label dengan jumlah:
Saya kemudian membuat garis yang menghubungkan titik sumber ke semua tujuan menggunakan lapisan virtual menggunakan kode berikut:
Lalu saya menggunakan ekspresi generator Geometri berikut untuk memberi style pada baris:
Ini mengambil setiap baris dan menerapkan langkah-langkah berikut:
tapered_buffer
untuk memahami mengapa ini diperlukan)Dalam menulis langkah-langkahnya, saya menyadari bahwa konversi ke dan dari array tidak diperlukan, dan semua manipulasi WKT dapat dilakukan dengan regex. Ungkapan ini di bawah, dan jika
tapered_array
fungsi dapat diganti dengan yang lain maka ini juga dapat digunakan dalam QGIS 2.18.sumber
Pertanyaan Anda membuat saya penasaran.
Solusi ini hanya berfungsi untuk QGIS 2.x di Python Console
Seperti disebutkan dalam komentar saya di sini adalah ide saya untuk membuat garis lengkung dengan Python.
Saya memiliki dua lapisan titik:
saya. Satu memegang modal (id, modal)
ii. Satu memegang kota (id, kota, komuter)
Jumlah komuter "dipisahkan menjadi uang kertas" dan ini akan menjadi garis yang membangun busur. Jadi 371 komuter adalah kombinasi 3x100, 1x50, 2x10 dan 1x1 dan total 7 uang kertas. Setelah itu, garis ditata dengan gaya berdasarkan aturan.
Ini kodenya:
Hasilnya bisa seperti ini:
UPDATE: perbedaan pria / wanita
Hasil dalam 4 Lapisan Memori.
Hasilnya bisa seperti ini:
Satu hal yang tidak ideal dari sudut pandang kartografi:
Ukuran busur garis dapat mengganggu pada pandangan pertama, dalam cara busur yang lebih besar dapat mewakili lebih banyak penumpang. Busur bisa lebih besar dengan lebih sedikit komuter (289 komuter / 11 uang kertas) daripada yang lain dengan lebih banyak komuter (311 komuter / 5 uang kertas).
sumber