Saya ingin menunjukkan jaringan seluler di peta. Input data adalah file .csv di mana setiap string adalah sektor seluler. Atributnya adalah: id sektor, koordinatnya, azimutnya, dan sudut lebar antena.
Nilai lebar berkas antena berada dalam kisaran 30 hingga 360 derajat. Lebar sinar antena 360 artinya harus ditampilkan di peta sebagai lingkaran. Antena dengan lebar sinar lain harus ditampilkan sebagai sektor dengan sudut bukaan yang sesuai.
Apakah mungkin untuk menunjukkan antena menggunakan simbol saja? Saya tahu cara membuat simbol SVG saya sendiri dan berharap menemukan cara memutarnya sesuai dengan azimuth. Tetapi apakah ada cara untuk menerapkan lebar antena variabel sesuai dengan nilai atributnya dari 30 hingga 360 derajat?
Saya pikir simbol adalah cara terbaik untuk menggambar antena karena visualisasi dinamis pada peta sesuai dengan skala tampilan, jika cara ini dimungkinkan dalam QGIS.
Tentu saja, tugas tersebut dapat diselesaikan dengan menggambar poligon yang sesuai sebagai fitur layer, tetapi itu akan menjadi solusi penyelesaian masalah.
sumber
Jawaban:
Beberapa hari yang lalu sebuah plugin baru ditambahkan ke QGIS yang disebut Wedge Buffer Processing Algorithm . Ini sepertinya menarik.
Seperti namanya, ini adalah algoritma pemrosesan, jadi Anda harus menjalankannya dari kotak alat pemrosesan. Namun belum sempat mencobanya.
Ini menciptakan sektor lingkaran - seperti buffer lingkaran normal, tetapi sudut irisan dan jari-jari dapat diatur menggunakan nilai-nilai bidang.
Dokumentasi dan tangkapan layar dapat dilihat di halaman github
sumber
Jika Anda hanya ingin menggunakan simbologi, saya mengusulkan solusi yang terinspirasi oleh jawaban saya dari pertanyaan serupa: Membuat lampu sektor di QGIS? .
Mengikuti pendekatan yang serupa, dan dengan asumsi Anda sedang mengerjakan Proyeksi CRS (sebagai gantinya, jika Anda menggunakan Sistem Koordinat Geografis, lihat catatan di akhir jawaban), saya ingin menggarisbawahi bahwa saya akan memusatkan perhatian pada penjelasan. dari hal-hal minimal yang harus dilakukan untuk mereproduksi hasil yang diinginkan: ini berarti bahwa beberapa parameter kecil lainnya (seperti ukuran, lebar dan sebagainya) harus mudah disesuaikan oleh Anda untuk lebih sesuai dengan kebutuhan Anda.
Lebih jauh, saya berasumsi bahwa
"AZIMUTH"
bidang yang menyimpan nilai azimuth dan"BEAMWIDTH"
bidang yang menyimpan lebar berkas antena.Larutan
Kami akan memberikan poin dengan a
Single symbol
dan dengan berulang ke satuSimple Marker
dan duaGeometry generator
lapisan simbol:Dalam penjelasan lebih lanjut, saya akan mengikuti urutan simbol yang sama pada gambar di atas.
1) Penanda Sederhana
Saya memilih simbol default lingkaran merah (ini adalah bagian yang lebih mudah dari tutorial ini), memiliki ukuran 3 mm dan lebar 0,4 mm.
2) Generator Geometri No. 1
Tambahkan layer simbol baru dan pilih
Geometry generator
danLineString / MultiLineString
jenisnya:Masukkan ungkapan ini di
Expression
bidang:Kami baru saja mendefinisikan panah yang menunjuk ke arah set azimuth (untuk membuat panah, ingatlah untuk memilih
Arrow
jenis lapisan simbol di bawahLine
opsi dari Menu simbol utama). Harap perhatikan bahwa300
mewakili jarak dalam meter dan ini merupakan nilai arbitrer, jadi silakan mengubahnya sesuai dengan kebutuhan Anda.3) Generator Geometri No. 2
Tambahkan layer simbol baru dan pilih
Geometry generator
tipe danPolygon / MultiPolygon
tipe:Masukkan ungkapan ini di
Expression
bidang:Kami baru saja mendefinisikan sektor ini. Harap perhatikan bahwa
200
dan2000
wakili jarak dalam meter dan ini adalah nilai arbitrer karena saya mencoba membuat poligon untuk memotong lingkaran yang memiliki radius 200 m, jadi jangan ragu untuk mengubahnya sesuai dengan kebutuhan Anda.Hasil akhir
Jika Anda melakukan tugas-tugas sebelumnya dengan benar, Anda harus bisa mendapatkan hasil seperti ini (label ditambahkan terpisah dari solusi ini dan mereka seharusnya hanya menjelaskan konteksnya dengan lebih baik):
Catatan
Jika Anda menggunakan Sistem Koordinat Geografis , yaitu jika Anda berurusan dengan derajat dan tidak dengan jarak, itu harus cukup menggunakan nilai yang tepat ketika saya menggunakan jarak dalam rumus sebelumnya. Jarak yang saya gunakan adalah:
jadi Anda bisa menggantinya dengan nilai arbitrer lain yang dinyatakan dalam derajat (misalnya
0.0002
,,0.002
dan sebagainya).Bonus
Saya telah melampirkan style di sini : Anda dapat membuka kode ini dengan editor teks apa pun dan menyimpannya sebagai file QGIS Layer Style (yaitu dengan
.qml
ekstensi).Gaya di atas dibuat menggunakan QGIS 2.18.4 (harus memiliki nama yang sama dengan shapefile yang Anda gunakan).
sumber
Pujian besar untuk mgri.
Di lapisan pengujian kami, semuanya bekerja dengan lancar. Dalam lapisan produksi, setelah dua / tiga jam, saya berhasil melacak masalah $ geometri . Sudah mengekspor lapisan titik dari platform, tidak memperhatikan, tapi itu MultiPoint . Ini tampaknya menyebabkan masalah: panah tidak ditarik; dan anehnya hanya titik yang dihitung yang membuat poligon lingkaran.
Hal lain adalah saya menggunakan radius variabel . (tidak yakin apakah itu kata yang tepat dalam kasus ini, Anda juga bisa menamainya 'panjang balok' atau apa pun).
Inilah yang saya gunakan sekarang, dengan lapisan tipe geometri MultiPoints (padahal sebenarnya semua fitur adalah satu titik), dan berfungsi untuk saya di QGis 2.18.3
Ekspresi panah Tidak panah jika 360 °.
Ekspresi poligon
sumber
Saya berbakat dengan solusi parsial di web tanpa plugin tambahan, hanya qgis di luar kotak. Itu tidak menunjukkan antena beamwidth, hanya memutar penanda sederhana ke arah yang benar: gunakan penanda sederhana dan putar dengan antena azimuth + 180 derajat (Properti Lapisan> Simbol Tunggal-> Penanda-> Penanda sederhana-> segitiga-> rotasi-> edit -> ketik <180 + "antenna azimuth"> di bidang ekspresi. Dan juga atur Top di bidang Anchor point dari marker). Menggunakan <180 + "antena azimuth"> diperlukan karena arah yang tidak tepat dari penanda segitiga sederhana yang tertanam. Kalau tidak, itu akan menunjukkan arah antena yang salah.
sumber