AÖF Soru Bankası

Web Tabanlı CbsÜnite 6 Özeti

Web CBS Yazılım Geliştirme Araçları

CBS226U-WEB TABANLI CBS

Ünite 6: Web CBS Yazılım Geliştirme Araçları

Giriş

Web tabanlı coğrafi bilgi sistemleri sadece ticari veya kişisel kullanımlar için değil insani kullanımlar için de oldukça önemli bir yerdedir. Bu yüzden web tabanlı coğrafi bilgi sistemi uygulamaları ve bu uygulamaların hangi teknolojiler kullanılarak geliştirildiğini bilmek önem arz etmektedir.

Web Tabanlı CBS Uygulamaları

Kablolu ve kablosuz veri iletimi alanında son zamanlarda meydana gelen gelişmeler sayesinde coğrafi bilgi sistemleri bilgisayara özgü olmaktan çıkıp dağıtılmış hale gelmiştir. CBS uygulamalarına web tarayıcılarının olduğu her yerden erişilebilmektedir. CBS teknolojileri coğrafi bilginin işlenmesini, analizini ve yayılmasını geliştirmeyi amaçlarken internet CBS potansiyel bir telekomünikasyon ağından oluşan coğrafi bilginin paylaşımına odaklanır. Güvenirliliği kanıtlanmış, birçok insan tarafından kullanılan web tabanlı coğrafi bilgi sistemi uygulamalarından bazıları aşağıda anlatılmıştır.

FlightRadar24

FlightRadar24 tüm dünya genelinde gerçekleşen canlı hava trafiğinin anlık gözlemlenebileceği web uygulamasıdır. 2007’de Svenska Resenätverket AB tarafından İsveç’te oluşturulmuş ve geliştirilmeye başlanmıştır. Ayrıca iOS ile Android uygulamaları aracılığıyla kullanıcılara hizmet vermektedir. Mobil uygulamalar veritabanına bağlı servislerle haberleşerek kullanıcının isteklerini karşılayacak verileri alarak arayüze yerleştirilen haritalar üzerinde göstermektedir. Bu servisler veri sağlama servisleri olarak adlandırılır. Veri toplama servisleri ise ADS-B, MLAT ve radar verileri dahil olmak üzere çeşitli veri kaynaklarından gelen verileri birleştirir ayrıca veritabanında ilgili tablolara kaydeder. ADS-B, MLAT, radar verileri, havayollarından ve havalimanlarından alınan program ile uçuş durumu verileriyle bir araya getirilerek bir uçuş izleme deneyimi oluşturulur. Bu veriler web arayüzü aracılığıyla dünya haritası üzerinde gösterilir. Arayüz uygulamalarında (mobil ve web) Google Maps teknolojisi altlık harita olarak kullanılır. Anlık olarak uçuş bilgileri katmanlar olarak harita üzerinde gösterilmektedir. Ayrıca FlightRadar24 için AirLabs tarafından sağlanan geliştiricilerin faydalanabilecekleri halka açık API uygulaması mevcuttur. API (Application Programming Interface): Birden fazla uygulamanın birbirleriyle iletişime geçmesi için hazırlanmış yazılım araçlarıdır. Yazılımlar arasında verilerin belirli bir biçimde aktarılmasını sağlar.

OpenStreetMap

Gönüllülük esasına dayalı olarak bir araya gelmiş haritacılar topluluğu tarafından geliştirilen özgür ve açık kaynaklı dünya çapında harita oluşturma projesidir. İngiltere’de Steve Coast tarafından 2004 yılında kurulmuştur. Dünya çapında sayısız web sitesi, mobil uygulama ve donanım cihazı için harita altlığı sağlar. Temel olarak kullanıcılar tarafından sağlanan GPS izleri, uydu fotoğrafları ve yerel yönetimler tarafından sağlanan

verilerin veritabanında birleştirilmesi ile oluşur ve yapılan değişiklikler anında güncel haritaya yansıtılır. OpenStreetMap uygulamasında temel olarak PostgreSQL veritabanı kullanılmıştır. MySQL, Oracle ve MongoDB veritabanlarından da uygulama içerisinde faydalanılmıştır. Veri XML (eXtensible Markup Language) formatında .osm uzantılı dosya olarak indirilir ve OSM XML dosyası olarak adlandırılır. OpenStreetMap verilerine ulaşmanın bir diğer yolu ise API bağlantılarıdır. Direkt veritabanına bağlı API uygulamaları aracılığı ile istenilen veriler belirli amaçlara göre hazırlanmış servisler çağrılarak elde edilebilir.

Yazılım Geliştirme Araçları ve Kütüphaneleri

Uygulama geliştirme süreçlerinde en kritik kısım veritabanında tutulan bilginin kullanıcıya gösterilmesi ve veritabanı için dış dünyadan veri toplama süreçleridir. Veritabanında tutulan ham verinin (raw data) kullancının anlayabileceği formatta gösterilmesi yazılımlar sayesinde yapılmaktadır. Kütüphaneler ise ihtiyaç duyulan işlerin daha önce başkaları tarafından hazırlanmış, kolaylıkla kullanılabilen yazılım paketleridir. Veritabanına bağlanma, kullanıcı işlem kayıtlarının tutulması gibi sık sık kullanılan işlemler için her defasında aynı evrelerden geçmek yerine hazır kütüphaneler kullanmak hem hız kazandırmakta hem de hata yapma riskini azaltmaktadır.

Geomajas

Açık kaynak kodlu oluşturulmuş, web tabanlı ve bulut tabanlı yazılım geliştirme uygulamasıdır. WMS, WFS standartları Geomajas tarafından kullanılabilmektedir. Oracle ve PostgreSQL veritabanları ile entegre çalışabilmektedir. Coğrafi bilgi sistemleri için kurgulanmıştır.

MapFish

OSGeo tarafından üretilen ve geliştirilen, BSD lisansı altında dağıtılan, açık kaynak kodlu zengin web haritalama uygulamaları oluşturmak için kullanılan esnek ve eksiksiz bir yazılım çerçevesidir. Pylons Python web çerçevesine dayanmaktadır.

TerraLib

Brezilya merkezli bir çekirdek geliştirme ekibi tarafından geliştirilmekte ve açık kaynak kod olarak lisanslanmaktadır. Nesne-ilişkisel DBMS teknolojisini uzay-zamansal veri türlerini işlemek için genişleten açık kaynaklı bir coğrafi bilgi sistemi yazılım kütüphanesidir. MySQL, PostgreSQL ve Oracle dahil olmak üzere farklı DBMS’leri destekler.

OpenLayers

Web tarayıcılarında harita verilerini haritalar olarak görüntülemek için oluşturulmuş açık kaynaklı bir JavaScript kütüphanesidir. BSD lisansı altında dağıtılmaktadır. Hiçbir sunucu bağımlılığı yoktur. Web sayfalarına kolayca dinamik haritalar yerleştirilmesine yardımcı olur.


LeafLet

Açık kaynak kodlu harita kütüphanesidir. Mobil uygulamalar hedef alınarak geliştirilmiştir ve masaüstü uygulamalar için de oldukça kullanışlıdır. JavaScript yazılım dili kullanılarak oluşturulmuştur. Kullanılabilirlik, performans ve basitlik ön planda tutularak geliştirilmiştir. CBS arka planı olmayan geliştiricilerin, genel bir sunucuda barındırılan web haritalarını çok kolay bir şekilde görüntülemesine olanak tanır.

Veritabanı Sistemleri

İnternet üzerinden kolayca ulaşılabilecek, oldukça yeterli dokümanlar sayesinde yazılım geliştirme araçları ve kütüphaneler belirli standart üzerinden kullanılabilmektedir. Bu yazılım geliştirme araçları ve kütüphanelerin kullanımı, gerçekleştirilmek istenilen projenin özelliklerinden bağımsız olarak aynı şekilde gerçekleşmektedir. Geliştirilecek projede veritabanı seçimi ve ihtiyaca göre kurgulanması oldukça önemlidir. Projenin detayı arttıkça tutulan veri çeşitliliği ve boyutu da artmaktadır. Veri boyutu ve çeşitliliği arttıkça istenilen verinin bulunup alınma süresi artmaktadır. Dolayısıyla veritabanlarının karşılaştırılması ve yapılan test sonuçlarının incelenerek kullanılacak veritabanın seçilmesi gerekir. MySQL, PostgreSQL, Microsoft SQL Server, MongoDB, MariaDB, Oracle bazı popüler veri tabanlarıdır. Bu veritabanları için geliştirilen bazı eklentiler aşağıda özetlenmiştir.

SpatiaLite

SQLite veritabanı için geliştirilen veritabanı eklentisidir. Açık kaynak kodlu bir kütüphanedir. SpatiaLite ile oluşturulmuş veritabanı farklı platformlar arasında kolaylıkla değiştirilebilir. Tüm veritabanını oluşturan tablolar sadece bir dosyadan oluşur ve boyutu sınırsızdır. Dışarıdan alınacak dosyalar sanal tablolar olarak kolayca entegre edilerek mevcut veritabanına eklenir ve sorgularda kullanılabilir.

PostGIS

PostgreSQL nesne tabanlı veritabanına geometrik özellikler ekleyen açık kaynak kodlu bir yazılım programıdır. PostGIS teknik olarak PostgreSQL harici uzantısı olarak uygulanmıştır. ArcGIS, GeoServer, MapServer, OpenStreetMap, QGIS, SAGA GIS, TerraLib gibi birçok coğrafi bilgi sistemi yazılımında PostGIS kullanılabilir. PostgreSQL için geometrik verileri depolama, sorgulama gibi özellikler ekler. PostGIS, performansı en üst düzeye çıkarmak için geometri ve dizin yapılarının mümkün olan en küçük temsillerini kullanır. Mesafe (distance), kapsama (containment), kesişim (intersection) ve tam ilişki matrisleri (full relationship matrices) gibi tam geometri sorgulama işlem seti içerir.

Haritalama Sunucu Yazılımları

Sunucu yazılımları, veritabanında yer alan coğrafi verilerin, kaynakların veya dosyaların web uygulamalarına ulaştırılması için kurgulanmış yazılımlardır. Sunucular web

tabanlı CBS uygulamalarında temeli oluşturmaktadır. Son zamanlarda gelişen bulut teknolojisi sayesinde bir veya birbirine bağlı birden çok bilgisayar sistemleri üzerinden birçok sunucu hizmeti verilmektedir. Fakat bu bilgisayar sistemlerinin sunucu işlevi görebilmesi için üzerinde yazılımlar kurulu olması gerekir. Coğrafi verileri istemcilere ulaştırmak için geliştirilmiş ücretli ve ücretsiz yazılımlar mevcuttur. Bu yazılımlardan bazılarının çalışabilmesi için bilgisayar sistemi üzerine sunucu yazılımı (Apache, CentOS, Debian vs.) kurulu olması gerekirken bazıları direkt sunucu yazılımı görevini görmektedir. Ağ üzerinden iletilen verilerin standart formatta olması kritik önem taşımaktadır. Bu standardizasyon sayesinde her kullanıcı her zaman verilere aynı formatta ulaşabilir. OGC (Open Geospatial Consortium) tarafından belirlenen, harita sunucularının destekledikleri standartlardan en yaygın kullanılanları WMS, WFS, WFS-T, WCS, WPS ve WMTSdir.

Veri Formatları

İstemci-sunucu yapılarında verilerin iletilmesi için belirli formatlar belirlenmiştir. Böylece sunucudan iletilen verinin formatı istemci tarafından bilinir ve veri bu formata göre işlenir. Coğrafi bilgi sistemlerinde sıkça kullanılan veri formatları aşağıda özetlenmiştir.

GeoJSON

Coğrafi veri aktarımı için kullanılan, JSON temel alınarak oluşturulan veri aktarım formatıdır. Nokta, çizgi, çokgen gibi coğrafi elemanları destekler. Göller, akarsular, binalar, yollar gibi nesnelerin tanımlanması ve aktarılması için kullanılır.

GeoTIFF

Platformdan bağımsız TIFF dosya biçimi kullanılarak geliştirilmiştir. Gereken meta verileri ekleyerek coğrafi görüntü verilerini tanımlamak ve kullanmak için oluşturulmuş dosya formatıdır. Bu format coğrafi görüntü verilerini paylaşmak için jeo-uzamsal ve yer bilimleri topluluklarında kullanılır. Meta verileri, GeoTIFF formatındaki verinin kullanılması için gerekli olan verileri içerir.

GML

Coğrafi işaretleme dili kullanılarak oluşturulmuş XML temelli coğrafi özellikleri ifade etmek için kullanılan veri formatıdır. İnternette yer alan coğrafi işlemler için açık bir veri alış-veriş biçimidir.

KML

Anahtar deliği biçimlendirme dili olarak oluşturulmuş XML temelli iki ve üç boyutlu haritalar içerisinde görselleştirme ifade etmek için oluşturulmuş veri formatıdır. Başlangıçta Google Earth ile kullanılmak üzere geliştirilmiştir, sonrasında uluslararası standart haline gelmiştir.


GeoServer

Java tabanlı, açık kaynak kodlu sunucu hizmeti veren yazılımdır. Web uygulamaları, masaüstü uygulamaları, mobil uygulamaları gibi kanallardan coğrafi verilere ulaşılabilmesi ve bu verilerin işlenmesi işlemlerine olanak sağlar. GeoServer uygulaması, OGC (Open Geospatial Consortium) uyumludur. OGC standartlarında (WMS, WFS, WCG vs.) hizmetler sunmaktadır. Bu hizmetleri sayesinde platform bağımsızlığı sağlanarak farklı uygulamaların birbirleri ile veri alış-verişi yapması mümkün hale gelmiştir. PostGIS, Oracle Spatial, ArcSDE, DB2, MySQL gibi veri kaynakları ile uyumlu çalışabilmektedir. KML, GML, GeoJSON, PDF gibi birçok türde veriler üretmek mümkündür.

QGIS Server

QGIS Server, QGIS masaüstü uygulamalarını internet üzerinden yayınlama imkânı sunan, C++ ile geliştirilmiş açık kaynak kodlu sunucu yazılımıdır. WMS, WFS, WCS ve WMTS gibi standartları desteklemektedir. Ayrıca OGC standardında API uygulamaları geliştirilebilmektedir. Hizmet verebilmesi için bir web sunucusuna (Nginx, Apache vs.) ihtiyaç duymaktadır. QGIS Server sunucu yazılımında WMS, WFS, WCS ve WMTS standartları kullanılabilmektedir.

MapServer

MapServer c dilinde yazılmış açık kaynaklı coğrafi veri işleme motorudur. Projenin tüm kaynak kodlarına GitHub üzerinden ulaşılabilir. MapServer web sunucusunda bekleyen bir bilgisayar tabanlı görüntü (CGI) programıdır. MapServer’a bir istek geldiği zaman, URL üzerinden gönderilen bilgileri kullanarak istenilen haritayı oluşturur ve cevap olarak gönderir. Ayrıca harita dışında imaj, ölçek çubuğu (scale bar), referans haritaları gibi farklı tür cevaplar da oluşturulabilir.

Bu ünitenin sorularını uygulamada çözŞıklar, doğru cevaplar ve süreli sınav modu AÖF Soru Bankası uygulamasında