QGIS Server Kurulum ve Uygulama (Windows)

Hepimiz Quantum GIS (QGIS Desktop)’i  açık kaynaklı kodlu ve ücretsiz bir masaüstü CBS yazılımı olarak biliyoruz. Peki bunun yanından bir de harita sunucusu olduğundan kaç kişinin haberi var ? Evet yanlış okumadınız QGIS ‘in bir de harita sunucu var hem de coğrafi verilerinizi OGC standartlarında (WMS, WFS, WFS-T) servis edebilmenizi sağlıyor. QGIS Desktop, masaüstü CBS yazılımları arasında oldukça tanınmış olmasının aksine sunucu versiyonu olan QGIS Server ise harita sunucuları arasında henüz çok tanınmamıştır. Fakat ileride adından sıklıkla söz ettireceğini düşünüyorum. C++ ile geliştirilmekte olan QGIS Server, CGI mimarisinde çalışmaktadır.

QGIS Server ‘in en önemli özelliği ise QGIS Desktop ile entegrasyonudur diyebilirim. Örneğin QGIS Desktop ortamında hazırladığınız bir haritayı (vektör veya raster katman) doğrudan WMS veya WFS ile servis edebilmenizi sağlıyor. Yani katmanlara ait stilleri, koordinat sistemi gibi pek çok düzenlemeyi doğrudan QGIS Desktop ‘taki proje dosyasından okuyarak ek işleme gerek bırakmıyor. Bu yazımda QGIS Server ‘in Windows ortamında kurulumu ve coğrafi verilerin WMS olarak servis edilmesinden bahsedeceğim.

Gerekenler

OSGeo4W : Açık kaynak kodlu OSGeo yazılımların kurulumunu sağlayan paket yükleyici.

Kurulum

OSGeo4 yazılımını açın Advanced Install seçeneğini işaretleyip sonraki adıma geçin. Burada Download Without Installing seçeneğini aktifleştirip devam edin. Son olarak dosyaların ineceği konumu belirleyin. Ardından gelecek iki adımda ‘Next-Next’ diyerek indirme ekranına geçin. Bu kısımları görsel olarak pyspatialite Kurulum yazımda bulabilirsiniz. Paket kurulum ekranına geldikten sonra Web Deafult kısmını açın. Buradan QGIS Server seçeneğini işaretleyin ve ilerleyin.

Bir sonraki ekranda QGIS Server ‘in çalışabilmesi için ihtiyaç duyulan paketler listelenecektir. Sol alt köşedeki seçenekte Tik işaretinin olmasına dikkate edin.

Yukarıdaki işlemlerin ardından kurulum gerçekleşmiş olacaktır. Eğer değişiklik yapmadıysanız kurulum paketler C:\OSGeo4W\ klasörü içinde olacaktır. Yazımın başında da belirttiğim gibi QGIS Server, CGI mimarisinde çalıştığından dolayı sunucuya ihtiyaç duymaktadır. OSGeo4W bizim için Apache HTTP Server ‘i kurmuş olduğundan ek olarak bir şey yapmamıza gerek kalmıyor. Fakat diğer sunucular da denenebilir (Nginx, Lighttp, IIS vs).

Kurulumun ardından yapmamız gereken en önemli şey QGIS Server ‘in ihtiyaç duyduğu paketlere ulaşabilmesini sağlamak. Bunun için C:\OSGeo4W\bin klasörünü Sistem Değişkenleri > Path değişkeni içersine kaydetmemiz gerekiyor. Nasıl yapacağınızı Mapnik Kurulum ve Tile Oluşturulması yazımda bulabilirsiniz. Sadece farklı olarak C:\OSGeo4W\bin klasörünü ekleyeceğiz. Bu işlemin ardından test etmek amacıyla C:\OSGeo4W\apps\qgis\bin\ klasöründeki qgis_mapserv.fcgi.exe ‘yi çalıştırın. Herhangi bir hata mesajı almamanız gerekir. Eğer Sistem Değişkenlerinde gerekli işlemi yapmasaydınız büyük bir ihtimalle eksik DLL hatası alacaktık.  Tüm bu işlemlerin ardından sisteminizi yeniden başlatın.

Herhangi bir web browser’ ı açıp şu adrese gidin (localhost yerine sunucunun bulunduğu ip adresini yazmalısınız)

http://localhost/qgis/qgis_mapserv.fcgi.exe?SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities

Karşınıza hata mesajı (500 kodlu) gelmediyse QGIS Server başarı ile çalışmaktadır.

Kurulum sonrasında Apache HTTP Server yönetim araçlarına Başlat > Programlar > OSGeo4W  > Apache yolunda bulabilirsiniz.

Harita Servislerinin Gerçekleştirilmesi

İlk olarak QGIS Desktop ‘u açarak vektör ve raster katmanları ekleyerek bir proje oluşturun. Örneğin ben İstanbul Çatalça İlçesine ait DEM verisini kullandım. Gerekli stilleri verdikten sonra Project menüsünden Proje Özellikleri açılır.

Burada OWS Server kısmında servislerimizi yapılandıracağız. Veri servislerine ait bilgileri (metadata), koordinat kısıtlamaları, katman sınırları (extent) gibi düzenlemeleri buradan yapacağız. Bu işlemlerin ardından projeyi tekrar kaydedin.

QGIS Desktop proje dosyları XML tabanlı dosyalardır ve katman bilgileri, stil bilgileri tutulmaktadır. Kaydettiğimiz projeyi (.qgs uzantılı) not defteri ile açarak bazı düzenlemeleri yapmamız gerekiyor. Burada katmanlara ait dosya yolları göreceli olarak kaydedilmekte bunları tam yol haline dönüştürmeniz gerekiyor. Bunu isterseniz Proje Özellikleri penceresinden de değiştirebilirsiniz. Dosya yolunu yazarken \ sembolünün yerine / sembolünü kullanın.

Örneğin benim verilerin C:/qgisData klasöründe bulunmaktadır. Buna göre proje dosyasını (.qgs) aşağıdaki şekilde düzenledim.

Proje dosyasındaki gerekli düzenlemeyi de yaptıktan sonra C:\OSGeo4W\apps\qgis\bin klasörüne kopyalıyoruz. Ardından sunucuyu yeniden başlatıyoruz. Her yeni proje dosyasının etkin olması için sunucuyu yeniden başlatmanız gerekiyor. Ardından WMS servisine erişmek için QGIS Desktop ‘u açarak WMS Katmanı Ekle butonuna tıklayarak karşınıza gelen pencereden Yeni düğmesine tıklayın ve adres kısmına şunu girin:

http://localhost/qgis/qgis_mapserv.fcgi.exe?MAP=wmsTest.qgs&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetCapabilities

Hemen şunu belirteyim URL deki MAP parametresini C:\OSGeo4W\apps\qgis\bin klasörüne kopyaladığınız proje dosyasının adı ile değiştirin. Benim proje dosyamın adı wmsTest.qgs olduğuna dikkat edin. Servise ait URL ‘yi de ekledikten sonra Bağlan butonuna tıklayarak katmanları çağırıyoruz.

Seçtiğimiz katmanı QGIS Desktop’ a eklemeden önce Görüntü kodlama kısmında PNG veya PNG8 seçeneğinden birini seçin. JPG olarak seçmeniz durumunda görüntü alamayacaksınız. Zannediyorum ki bunun sebebi JPG kütüphanesi ile alakalı… Aşağıda örnek olarak Çatalca İlçesine ait Sayısal Yükseklik Verisi ile gerçekleştirdiğim WMS servisi görmektesiniz.

İsterseniz bu WMS servisini OpenLayers, uDig, gvSIG, ArcMap, OpenJump gibi OGC WMS servisini destekleyen yazılımlar ile de görüntüleyebilirsiniz.

Yayınlamış olduğum yazıları kaynak belirtmek kaydıyla paylaşabilirsiniz.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s