QGIS Plugins: QGIS2Web Nedir?
QGIS2Web, masaüstünde hazırladığınız bir CBS projesini tek bir sihirbaz penceresiyle tarayıcıda çalışan interaktif bir web haritasına dönüştürür — hiç JavaScript yazmadan. Ancak "kod yazmadan" ifadesi, çıktının nasıl çalıştığını anlamanıza gerek olmadığı anlamına gelmez: hangi sembolojinin aktarıldığını, dosya yapısını, performans sınırlarını ve yayınlama seçeneklerini bilmek, üretilen haritanın profesyonel görünmesi ile bozuk/yavaş bir sayfa arasındaki farkı belirler. Bu rehber tüm bu katmanları ayrıntılı biçimde ele alır.
1. QGIS2Web Nedir?
QGIS2Web, Tom Chadwin tarafından geliştirilen ve QGIS projelerini Leaflet.js veya OpenLayers tabanlı bağımsız web haritalarına dönüştüren bir eklentidir. Sonuç, sunucu tarafı bir uygulama değil — tamamen statik HTML, CSS, JavaScript ve GeoJSON/TopoJSON dosyalarından oluşan, herhangi bir web sunucusuna kopyalanıp doğrudan çalıştırılabilen bir pakettir.
Bu yaklaşımın gücü, QGIS'te zaten yaptığınız sembolojik ve öznitelik çalışmasını (renk skalaları, kategorize/dereceli görselleştirme, popup için gösterilecek alanlar) neredeyse hiç ek efor olmadan web'e taşımasıdır. Zayıf noktası ise tamamen istemci tarafı (client-side) çalışmasıdır: büyük veri setlerinde performans sınırlarına takılır (bkz. Bölüm 10).
Bakım durumu notu: Orijinal QGIS2Web deposu zaman zaman yavaş güncellenmiştir; QGIS'in yeni sürümleriyle uyumsuzluk yaşanırsa topluluk çatalları (fork) veya eklenti deposundaki güncel sürüm kontrol edilmelidir. Kurulum öncesi Eklenti Yöneticisi'nde sürüm notlarını okuyun.
2. Leaflet vs OpenLayers: Hangi Çıktı Motorunu Seçmeli?
QGIS2Web, dışa aktarma sırasında iki JavaScript kütüphanesinden birini üretim motoru olarak kullanmanıza izin verir. Bu seçim, üretilen sayfanın dosya boyutunu, hızını ve özellik setini doğrudan belirler.
| Özellik | Leaflet | OpenLayers |
|---|---|---|
| Kütüphane boyutu | Küçük (~40 KB gzip) | Daha büyük (~150+ KB gzip) |
| Mobil performans | Çok iyi | İyi, ama daha ağır |
| Projeksiyon desteği | Temelde Web Mercator odaklı | Gelişmiş, çoklu projeksiyon desteği |
| WMS/WMTS entegrasyonu | Temel destek | Daha kapsamlı OGC servis desteği |
| Öğrenme eğrisi (özelleştirme için) | Düşük — API sade | Orta-yüksek — daha fazla yapılandırma seçeneği |
| Topluluk/eklenti ekosistemi | Çok geniş (marker cluster, heatmap eklentileri) | Geniş ama daha kurumsal odaklı |
Genel öneri: Basit nokta/çizgi/poligon haritaları için Leaflet — daha hızlı yüklenir ve mobilde daha iyi çalışır. Özel bir projeksiyonda çalışıyorsanız veya gelişmiş WMS/WMTS entegrasyonu gerekiyorsa OpenLayers'ı tercih edin.
3. Kurulum
Arama kutusuna: qgis2web
→ Eklentiyi Yükle
Kurulum sonrası üst menüde Web → QGIS2Web → Create web map girişi belirir.
4. Adım Adım Web Haritası Oluşturma
- QGIS projenizde yayınlamak istediğiniz katmanları hazırlayın ve istediğiniz sembolojiyi (kategorize, dereceli renk skalası vb.) uygulayın.
- Web → QGIS2Web → Create web map menüsünü açın.
- Sol panelde dışa aktarılacak katmanları işaretleyin; her katman için ayrı sekmede popup, kümeleme ve görünürlük ayarlarını yapılandırın (bkz. Bölüm 5).
- Sağ panelde harita motorunu seçin: Leaflet veya OpenLayers.
- Başlangıç yakınlaştırma seviyesi, minimum/maksimum zoom ve genel harita başlığı gibi ayarları yapılandırın.
- Export düğmesine tıklayın ve çıktı klasörünü seçin.
- Eklenti otomatik olarak sonucu varsayılan tarayıcınızda önizleme olarak açar.
5. Katman Ayarları: Popup, Kümeleme, Hassasiyet
- Popup içeriği: Her katman için hangi öznitelik sütunlarının tıklandığında popup penceresinde gösterileceğini seçebilirsiniz; HTML açıklama şablonları (Popup açık kalsın/kapanır vb.) da desteklenir.
- Kümeleme (Cluster): Yoğun nokta verilerinde (binlerce nokta), yakın noktalar zoom seviyesine göre otomatik gruplanıp bir sayı rozetiyle gösterilir; performansı ciddi ölçüde iyileştirir.
- Hassasiyet (Precision): GeoJSON'a yazılan koordinatların ondalık basamak sayısını sınırlamak, dosya boyutunu önemli ölçüde küçültür (6 ondalık basamak ~11 cm hassasiyet sağlar; çoğu web haritası için fazlasıyla yeterlidir).
- Encode to JSON/PBF: Bazı sürümlerde vektör verinin daha sıkı bir ikili formatta (protobuf) kodlanması seçeneği bulunur; büyük katmanlarda dosya boyutunu azaltır.
- Görünürlük ölçeği: Katmanın hangi zoom aralığında görünür olacağı QGIS'teki ölçeğe bağlı görünürlük ayarlarından miras alınır.
6. Sembolojinin Aktarımı: Neler Desteklenir?
| QGIS Semboloji Türü | Web Haritasına Aktarım |
|---|---|
| Tekli sembol (Single Symbol) | Tam destekli |
| Kategorize (Categorized) | Tam destekli |
| Dereceli (Graduated) | Tam destekli |
| Kural tabanlı (Rule-based) | Kısmi destekli — karmaşık kurallar bazen basitleştirilir |
| Etiketleme (Labeling) | Desteklenir, ancak gelişmiş yerleştirme (placement) kuralları web'de farklı görünebilir |
| 2.5D / Yükseklik tabanlı render | Desteklenmez |
| Isı haritası (Heatmap render) | Desteklenmez — ayrı bir web kütüphanesi (Leaflet.heat) gerekir |
| Desen dolgu (SVG dolgu, dokular) | Kısmi destekli — bazı özel SVG desenleri web'de düzgün render edilmeyebilir |
Export öncesi kontrol: Eklentinin ürettiği tarayıcı önizlemesini, dışa aktarmadan önce mutlaka QGIS'teki orijinal görünümle karşılaştırın; özellikle kural tabanlı semboloji ve etiketlerde farklılık olabilir.
7. Dışa Aktarılan Dosya Yapısı
Export tamamlandığında seçtiğiniz klasörde tipik olarak şu yapı oluşur:
Veri dosyalarının doğrudan .geojson yerine bir JS değişkenine (var json_katman1 = {...}) gömülü .js dosyası olarak üretilmesi, tarayıcıların yerel dosya sisteminden CORS kısıtlaması olmadan (bir web sunucusu olmadan bile) veriyi <script> etiketiyle yüklemesini sağlar — bu, çift tıklayarak index.html'i doğrudan açabilmenizin nedenidir.
8. Yayınlama: GitHub Pages, Netlify, Firebase Hosting
Çıktı tamamen statik olduğu için sunucu tarafı çalışma zamanı (Node.js, PHP vb.) gerekmez. Üç yaygın ücretsiz yayınlama seçeneği:
app.netlify.com üzerinde "Deploys" sekmesine dışa aktarılan klasörü doğrudan sürükleyip bırakmak, saniyeler içinde bir URL üretir — hesap açmadan da hızlı bir deneme için kullanılabilir.
9. Dışa Aktarılan Kodu Özelleştirme
Üretilen dosyalar düz HTML/CSS/JS olduğu için herhangi bir metin editörüyle özelleştirilebilir. Örneğin popup penceresine özel bir buton eklemek:
Benzer şekilde css/qgis2web.css dosyasında yazı tipi, popup arka plan rengi veya harita konteyner boyutu değiştirilebilir; index.html'e Google Analytics kodu, ek marka logosu veya navigasyon çubuğu eklemek de mümkündür.
10. Performans: Büyük Veri Setlerinde Sınırlar
QGIS2Web'in en büyük kısıtı, tüm vektör verinin tarayıcıya tek seferde ve tamamen istemci tarafında yüklenmesidir — bir tile sunucusu veya vektör tile hizmeti kullanılmaz. Bu, veri boyutu büyüdükçe doğrudan performans sorununa dönüşür.
| Veri Büyüklüğü | Beklenen Davranış | Önerilen Çözüm |
|---|---|---|
| < 1.000 nesne | Sorunsuz, hızlı yükleme | Doğrudan dışa aktarın |
| 1.000–10.000 nesne | Yükleme gecikmesi hissedilir | Kümeleme (nokta) veya geometri sadeleştirme (poligon) |
| 10.000+ nesne | Tarayıcı yavaşlar/kilitlenebilir | Veriyi bölgesel olarak parçalayın veya vektör tile tabanlı alternatife geçin |
Pratik eşik: Deneyimler, karmaşık poligon geometrilerinde (çok köşeli il/ilçe sınırları gibi) birkaç bin nesneden sonra fark edilir yavaşlama olduğunu göstermektedir. Büyük veri setleri için QGIS2Web yerine sunucu tarafı vektör tile üreten bir çözüm (örn. Mapbox GL JS + tippecanoe, veya MapLibre) değerlendirilmelidir.
11. Koordinat Sistemi ve Yaygın Hatalar
- Harita boş görünüyor: Web haritaları WGS84 (EPSG:4326) veri ile Web Mercator (EPSG:3857) görüntüleme kombinasyonunu bekler; proje CRS'iniz farklıysa dışa aktarmadan önce katmanları yeniden projekte edin.
- Türkçe karakterler bozuk görünüyor: Kaynak katmanın öznitelik kodlaması UTF-8 olmalıdır; Shapefile kaynaklıysa dışa aktarmadan önce GeoPackage'a dönüştürmek kodlama sorunlarını önler.
- Popup'ta beklenmedik alanlar görünüyor: QGIS2Web varsayılan olarak tüm öznitelik sütunlarını popup'a dahil edebilir; katman ayarlarından yalnızca gösterilmesi istenen sütunları seçin.
12. QGIS2Web vs Alternatifler
🔷 QGIS2Web kullanın, eğer…
- Kod yazmadan hızlıca bir QGIS projesini web'e taşımak istiyorsanız
- Veri boyutu küçük/orta ölçekliyse (~birkaç bin nesne)
- QGIS'te zaten hazırladığınız sembolojiyi olduğu gibi korumak istiyorsanız
🟩 Alternatif bir araç kullanın, eğer…
- Python/Folium: Veri işleme ile haritalamayı aynı betikte birleştirmek istiyorsanız — bkz. Python ile Choropleth Harita
- Mapbox GL JS / MapLibre: Büyük veri, vektör tile ve gelişmiş stil kontrolü gerekiyorsa
- kepler.gl / deck.gl: Büyük ölçekli, katman animasyonlu veri görselleştirmesi gerekiyorsa
13. Pratik Kullanım Senaryoları
- Belediye/kurum raporlarında interaktif ek: PDF rapora ek olarak paylaşılan bağlantıda, okuyucunun katmanları açıp kapatabildiği bir harita.
- Tez/makale ekleri: Statik bir şekil yerine okuyucunun yakınlaştırıp popup ile veri inceleyebildiği bir web haritası bağlantısı.
- Saha ekibi paylaşımı: Kurulum gerektirmeyen, tarayıcıdan erişilebilen basit bir harita ile saha ekiplerine konum/durum bilgisi paylaşmak.
14. Sık Sorulan Teknik Sorunlar
- "require is not defined" veya konsol hataları: Genellikle dosyaların yerel dosya sisteminden (file://) değil, bir yerel sunucu (örn.
python -m http.server) üzerinden açılması gerektiği durumlarda ortaya çıkar; bazı tarayıcı güvenlik politikaları yerel dosya erişimini kısıtlar. - Legend görselleri görünmüyor: Dışa aktarılan klasörün tamamı (alt klasörler dahil) taşınmalı/yüklenmelidir; yalnızca
index.html'i kopyalamak legend ve veri dosyalarını eksik bırakır. - Katman sırası web'de QGIS'tekinden farklı: Bazı sürümlerde katman render sırası dışa aktarma sırasında değişebilir; katman panelindeki sırayı export öncesi kontrol edin.
Web Haritası ve CBS Projelerinizde Profesyonel Destek
QGIS projelerinizi interaktif web haritalarına dönüştürme ve yayınlama konusunda uzman ekibimizden destek alın.
Ücretsiz Danışmanlık AlınKaynaklar
- Chadwin, T. qgis2web Plugin Repository. GitHub: tomchadwin/qgis2web
- Leaflet.js Documentation. leafletjs.com
- OpenLayers Documentation. openlayers.org
- QGIS Plugin Repository. plugins.qgis.org