Spatial WFS ve WMS Sorgularda SRS ve BBOX Kullanımı

27 Oca

Bu yazıda, OGC tarafından belirlenmiş standartlar olan WMS veya WFS gibi servislere yapılan sorgulara ait SRS, SrsName ve BBOX parametrelerinin kullanımı ve işlevleri incelenmektedir.

  • SRS (Spatial Reference System) parametresi, istenen çıktı verinin projeksiyonunu ifade eder. Projeksiyon belirteci olarak EPSG kodları kullanılır. (EPSG:4326 gibi)
  • BBOX parametresi, çıktı verinin içinde bulunduğu çerçeveyi ifade eder. Yani dörtgen şeklinde bir kutu belirler ve sunucudan bu kutu içerine düşen verileri ister. Çerçeve sınırları minX, minyY maxX, MaxY şeklinde belirlenir.

SRS parameteresi WMS sorgularında kullanılırken, SrsName parametresi ise WFS sorgularında kullanılmaktadır. Bu parametreler işlevsel olarak aynı görevi üstlenirler. Ancak kullanım zorunluluklarına bakıldığında;

  • WMS sorgularında SRS ve BBOX parametresi kullanmak zorunludur.
  • WMS sorgularında kullanılan SRS çıktı verinin projeksiyonunu ifade. Ayrıca BBOX ile ifade edilen sınırları da SRS koordinatları ile ifade edilir. WMS sorgularında bu iki parametre birlikte kullanılır.
  • WFS sorgularında SrsName parametresi kullanmak isteğe bağlıdır ve BBOX ile beraber kullanma zorunluluğu yoktur.

WFS sorgularında kullanılan SrsName parametresi bize istediğimiz koordinat sistemine göre coğrafi veri elde etmemizi sağlar. Örneğin bir WFS adresine birbirinden farklı SRS bilgileri ile sorgular göndererek sonuçlarını inceleyelim.

Sorgu 1- EPSG:4326 ile Point sorgusu:

 
 http://localhost:8080/geoserver/wfs?
      request=GetFeature&
      service=wfs&
      version=1.0.0&
      typename=GIS:poi&
      SrsName=EPSG:4326&
      BBOX=490867.51265,4515158.48547,490981.28371,4515253.73566

Cevap 1- Sorgu sonucu dönen nokta koordinatları: (29.89232754,40.77166657)

EPSG:4326 kodu ile WGS84 (World Geodetic System 1984) koordinat sistemi ifade edilmektedir. WGS84 Yeryüzü için standart bir coğrafi koordinat sistemi belirler.

Sorgu 2- EPSG:3857 ile Point sorgusu:

 
 http://localhost:8080/geoserver/wfs?
      request=GetFeature&
      service=wfs&
      version=1.0.0&
      typename=GIS:poi&
      SrsName=EPSG:3857&
      BBOX=490867.51265,4515158.48547,490981.28371,4515253.73566

Cevap 2- Sorgu sonucu dönen nokta koordinatları:  (3327598.68066687,4978720.64792567)

Sorgu 3- EPSG:900913 ile Point sorgusu:

 
 http://localhost:8080/geoserver/wfs?
      request=GetFeature&
      service=wfs&
      version=1.0.0&
      typename=GIS:poi&
      SrsName=EPSG:900913&
      BBOX=490867.51265,4515158.48547,490981.28371,4515253.73566

Cevap 3- Sorgu sonucu dönen nokta koordinatları:  (3327598.68066687,4978720.64792567)

3857 ve 900913 EPSG kodlarına sahip koordinat sistemleri aslında aynı şeyi ifade etmektedir. Bu nedenle sorgular aynı sonucu vermiştir. 900913 sayısı ile “google” kelimesi sayılarla ifade edilmeye çalışılmıştır. EPSG kodları arasında resmi olarak 900913 kodu yer almaz, bunun yerine 3857 kodu yer alır.(http://wiki.openstreetmap.org/wiki/EPSG:3857) İlk başlarda Google haritaları tarafından kullanılan Spherical Mercator projeksiyon koordinat sistemidir. Daha sonraları OpenStreetmap haritaları tarafından da kullanılmaya başlamıştır.

Sorgu 4- EPSG:41100 ile Point sorgusu:

 
 http://localhost:8080/geoserver/wfs?
      request=GetFeature&
      service=wfs&
      version=1.0.0&
      typename=GIS:poi&
      SrsName=EPSG:41100&
      BBOX=490867.51265,4515158.48547,490981.28371,4515253.73566

Cevap 4- Sorgu sonucu dönen nokta koordinatları: (490909.7666,4515222.0527)

EPSG:41100 kodu da resmi EPSG kodları arasında yer almaz. Eğer Coğrafi bir veri tabanına sahipseniz, özel bir projeksiyon koordinat sistemini bu veri tabanına kaydederek ona istediğiniz kodu verebilirsiniz. Bu kodu parametre ile gönderdiğinizde sizin belirlediğiniz koordinat sistemine göre sonuçlar alabilirsiniz.

Yukarıdaki sorgularda kullanılan BBOX parametresi, dörtgen bir sınır belirler ve veritabanında belirlenen bu sınırlar arasında kalan geometrik nesneler aranır.

Sorgu 5- BBOX ve SrsName ile Point sorgusu:

 
 http://localhost:8080/geoserver/wfs?
      request=GetFeature&
      service=wfs&
      version=1.0.0&
      typename=GIS:poi&
      SrsName=EPSG:3857&
      BBOX=490867.51265,4515158.48547,490981.28371,4515253.73566,EPSG:41100

Cevap 5- Sorgu sonucu dönen nokta koordinatları: (3327598.68066687,4978720.64792567)

Bu sorguda dikkat edilecek olursa BBOX parametresinin sonuna EPSG:41100 kodu eklenmiştir. Fakat SrsName parametresi ise EPSG:3857 olarak ayarlanmıştır. Burada yapılmak istenen BBOX koordinatlarının EPSG:41100 sisteminde verilmesi, ancak dönen sonuçların EPSG:3857 siteminde olmasıdır.

Bu parametrelerin doğru bir şekilde kullanımı, harita ve kaynak verinin projeksiyonları farklı olduğu durumlarda hayat kurtarır.

Coğrafi Bilgi Sistemleri Uygulaması – Geoserver

16 Ağu

geoserver-logo

GeoServer, coğrafi verilerin dış dünyaya sunulması için hazırlanmış açık kaynak kodlu bir java uygulamasıdır. GeoServer ile coğrafi verileri işlemek, paylaşmak ve düzenlemek mümkündür. GeoServer ile paylaşılan verileri Google Earth gibi masaüstü uygulamalarda kullanmak mümkün olduğu gibi Open Layers, Google Maps ve Bing Maps gibi
web tabanlı haritalara da kullanmak mümkündür.

GeoServer uygulaması, OGC(Open Geospatial Consortium) uyumlu olup OGC standartlarında Web Map Service(WMS), Web Feature Service(WFS) ve Web Coverage Service(WCG) gibi hizmetleri sunabilmektedir. Bu sayede platform bağımsızlığı sağlanıp farklı uygulamaların birbiri ile konuşması mümkün hale gelmektedir.

GeoServer, birçok coğrafi veri kaynağı ile uyumlu çalışabilecek şekilde tasarlanmıştır. Örneğin:

  • PostGIS
  • Oracle Spatial
  • ArcSDE
  • DB2
  • MySQL
  • Shapefiles
  • GeoTIFF
  • ECW

Geoserver ile birçok standartta veriler üretmek de mümkündür. Örneğin:

  • KML
  • GML
  • GeoRSS
  • PDF
  • GeoJSON
  • JPEG
  • GIF
  • SVG
  • PNG

Yukarıda bahsettiğimiz bileşenlerin düzgün işleyen bir iş kuralına göre konumlandırılması gerekmektedir. Üretilen coğrafi verileri depolanmasından, bir uygulamada vücut bulmasına kadar ilerleyen bir dizi adım söz konusudur. Peki o halde Geoserver bu sistemin neresinde durur?

Geoserver Uygulama Mimarisi
Geoserver Uygulama Mimarisi

Şemada ifade edildiği üzere Geoserver, veri kaynağı ile uygulama arasında konumlanmış bulunuyor. Tabi arada bir de GeoWebCache denilen sistem iyileştirme eklentisi bulunmaktadır.

Coğrafi veri kaynağına herhangi bir CBS(Coğrafi Bilgi Sistemleri) Masaüstü uygulaması ile erişmek mümkündür. Bu uygulama açaık kaynak kodlu QGGIS olabileceği gibi ticari ürünlerden ArcGIS v.s de olabilmektedir. Masaüstü uygulamaları kullanılırken Geoserver kullanmamıza gerek yoktur.

Web tabanlı harita uygulamalarında verilerimizi kullanmak için piyasada bulunan açık kaynak veya ticari uygulamalardan faydalanabiliriz. Örneğin OpenLayers, Esri API, Google Maps, Bing Maps gibi haritalar üzerinde coğrafi verilerimizi kullanabilmekteyiz.

Geoserver WMS Yayını ve OpenLayers
Geoserver WMS Yayını ve OpenLayers

 Nerelerde Kullanılır?

Geoserver uygulamasını coğrafi veri depolama ve bu veriyi paylaşma ihtiyacı olan şirketler veya kamu kurumları kullanabilir. Ülkemizde en yoğun kullanım alanları olarak bazı bakanlıklar, belediyeleri ve altyapı kurumlarını görmekteyiz. Belediyelerde imar, yol, numarataj ve adres bilgisi gibi birçok coğrafi veri depolanmaktadır. Altyapı kurumlarında da tüm altyapı bilgisi koordinatlı bir şekilde saklanmakta ve sunulmaktadır.

(CBS)Coğrafi Bilgi Sistemleri’nde Geoserver’ın Yeri

Dünyada ve ülkemizde hızla yaygınlaşan Coğrafi Bilgi Sistemlerine karşı ilgi giderek artmaktadır. Üniversitelerde bu konu üzerine önlisans, lisans ve yüksek lisans programları açılmaktadır. CBS uygulamalarının yaygınlaşmasıyla ürün kullanım ihtiyacı da belli bir maliyeti beraberinde getirmektedir. Ticari ürünleri satın alma gücü olmayan kurum ve şirketler doğal olarak açık kaynak kodlu Geoderver veya benzeri ürünlere yönelmektedir. Geoserver bu nedenle azımsanmayacak oranda bir kullanıcıya sahiptir.

 Özet

Eğer coğrafi verilerinizi para harcamadan OGC standartlarında dış dünya ile paylaşmak istiyorsanız Geoserver sizin için çok pratik bir çözüm olacaktır.