Apakah mungkin untuk mengisi poligon sehingga benar-benar transparan di MapServer? Saya ingin memiliki latar belakang hitam yang sedikit buram, dan di mana pun ada poligon, saya ingin semuanya menjadi jelas tanpa isi. Saya mengatur latar belakang saya dengan cara berikut:
IMAGECOLOR 0 0 0
TRANSPARENT OFF
Saya sudah mencoba membuat kelas yang berwarna putih untuk mengisi poligon, dan bereksperimen dengan opacity menggunakan TRANSPARENCY
dengan nilai dari 0 - 100 tetapi tidak menghasilkan poligon yang jelas:
CLASS
NAME "light"
EXPRESSION ([max_cost] == 2000)
STYLE
OUTLINECOLOR 255 255 255
COLOR 255 255 255
SIZE 1
WIDTH 2.0
END
END
Ini menghasilkan jenis gambar berikut:
Alih-alih poligon memiliki isian putih; Saya ingin memiliki isi tanpa warna. Saya menemukan satu saran online untuk mendefinisikan warna seperti ini:
COLOR -1 -1 -1
tetapi juga tidak berhasil. Di bagian dokumentasi ini, berikut ini dijelaskan:
"PALETTE = / path / to / palette.txt" digunakan untuk menentukan jalur absolut tempat warna palet dapat ditemukan. File ini harus berisi 256 entri r, g, b triplet untuk RGB imagemodes, atau r, g, b, quadruplets untuk RGBA imagemodes. Format yang diharapkan adalah satu triplet (atau quadruplet) per baris, setiap nilai dipisahkan oleh koma, dan setiap triplet / quadruplet pada satu baris. Jika Anda ingin menggunakan transparansi dengan palet, penting untuk memiliki dua warna ini dalam file palet: 0,0,0,0 dan 255,255,255,255.
Setelah membaca ini, saya juga mencoba menggunakan COLOR 0 0 0 0
tetapi ini menimbulkan kesalahan:
Pengidentifikasi tidak dikenal. Kesalahan parsing dekat (0) :( baris 71)
Saya tidak mengerti bagaimana saya merujuk pada warna define PALETTE=/path/to/palette.txt
tetapi ini sepertinya satu cara yang mungkin untuk mencapai ini.
Jawaban:
Mapserver baru-baru ini memperkenalkan konsep lapisan topeng (topeng berperilaku cukup seperti topeng di Photoshop dengan memadukan dengan lapisan yang diterapkannya).
The RFC menggambarkan apa yang mereka lakukan dan bagaimana mereka dapat digunakan. Dengan membaca jawaban Anda, sepertinya Anda bisa menggunakan layer mask untuk mendapatkan efek 'lubang kunci' yang Anda cari.
Saya tidak yakin apakah fitur ini masuk ke versi 6.2 yang dirilis beberapa minggu lalu.
sumber
Jadi, Anda ingin "menembus" latar belakang hitam dengan poligon transparan Anda untuk melihat latar belakang yang lebih rendah. Saya tidak yakin apakah itu mungkin dengan MapServer, tetapi saya dapat menyarankan trik lain.
Anda dapat membuat poligon sangat besar yang mencakup semua area Anda dan bahkan lebih diperluas, menggunakan perangkat lunak SIG apa pun. Kemudian Anda bisa menghapus poligon Anda dari poligon area ini, dan kemudian poligon holed ini Anda bisa memakai MapServer dan membuatnya hitam, bukan latar belakang hitam. Lubang yang sesuai dengan poligon Anda akan menjadi "transparan".
sumber
Saya memiliki baris-baris ini dalam file .map saya dan transparansi di bawah 100 berfungsi.
Semoga ini bisa membantu.
sumber
TRANSPARENCY
dari 0 - 100 dan sepertinya hanya menyesuaikan opacity. Saya menyadari ini tidak jelas dalam pertanyaan saya secara awal - saya merevisinya.Di bawah ini adalah contoh gambar yang menunjukkan lapisan topeng transparan. Jika Anda membuat topeng lebih besar, maka pengguna Anda tidak akan melihat tepi luarnya. Mirip dengan apa yang disarankan @nadya, Anda dapat:
Pada titik ini Anda akan memiliki topeng jadi. Namun, jika Anda ingin menambahkan label ke ruang cut-out, maka Anda perlu menambahkan (menggunakan alat Union) poligon yang lebih kecil kembali ke topeng. Kemudian, dengan file SLD di Mapserver, Anda bisa menata topeng sebagai abu-abu transparan, dan menata cut-out sepenuhnya transparan, dan menerapkan label di sana. Berikut ini contoh file SLD (ini dibuat untuk Geoserver):
Perhatikan bahwa poligon harus memiliki properti "TYPE" dengan nilai "inner" atau "outer" agar ini berfungsi dengan baik.
sumber