İnteraktif Türkiye Deprem Haritası

Gene aynı girişi yapmak istemesem de sanırım yapacağım 🙂 Uzun zamandır blogumu boş bırakmıştım. Bir süredir iBeacon Ar-Ge’si, Android Geliştirmesi ve türlü türlü CBS uygulaması derken blog yazısı yazmak için hiç ama hiç vakit kalmıyordu.

Yakın bir zamanda CartoDB ile Mekansal olarak bir partnerlik sözleşmesine imza attık ve kendi geliştirdiğimiz GeoBulut projesine ek olarak CartoDB ile farklı harita tabanlı görselleştirme projeleri üzerinde çalışmaya başladık. İlerleyen zamanlarda inşallah bu konularında detaylarına gireceğim ama bugün CartoDB ile hazırladığımız bir demo üzerinde konuşmak istiyorum.

CartoDB tamamen bulut üzerinde çalışan ve Twitter’in da dahil olduğu farklı veri kaynakları ile çalışabilen bir coğrafi veri sunum platformu olarak öne çıkmaktadır. Bu demo kapsamında Kandilli Rasathanesi’nden 2003-2015 arasındaki ülkemiz ve çevresinde olan noktasal deprem verilerini online olarak temin ettik. Bu verileri periodik olarak CartoDB’ye API’yi vasıtasıyla atarak gösterimi sağladık.

Sonrası aşamada verileri CartoDB’ye özgü yeni bir gösterim türü olan dinamik yoğunluk haritası (animated heatmap) ile son haline getirmiş olduk. Aşağıda ekran görüntüsü olan uygulamaya http://mekansal.azurewebsites.net/deprem.php adresinden erişebilir, canlı bir şekilde inceleyebilirsiniz.

İlerleyen süreçte CartoDB ve GeoBulut ile farklı görselleştirmeleri de buradan paylaşıyor olacağım.

cartodb-deprem

 

 

Türkiye İllerinin Hareketli Versiyonu (JavaScript ile)

Uzun zamandır farklı birşeyler yapmak istiyordum, haftasonu D3’ü keşfedip sonrasında GEO kütüphanelerinin de olduğunu görünce Amerika eyaletleri için yapılmış versiyonu neden Türkiye İlleri için çevirmeyeyim dedim ve yaptım 🙂

Uygulama illerin merkezlerini bulup bir nevi voronoi diagramı oluşturuyor. Sonra da sanki lastik ile bağlanmış gibi illeri birbirine bağlıyor. Açıkçası biraz uğraştırdı ama sonunda değdi diye düşünüyorum. Umarım sizler de beğenirsiniz. Uygulamaya aşağıdaki bağlantıdan ulaşabilirsiniz.

Uygulama Bağlantısı : http://www.mekansal.com/demo/d3/

ESRI DevSummit 2012

Geçtiğimiz ay ESRI’nin geleneksel düzenlediği Developer Summit (Geliştirici Zirvesi/Toplantısı) için Amerika / Kalifornia’nın Palm Springs kentine 6 günlük bir ziyaretim oldu. Daha önce 2008 senesinde katıldığım DevSummit sonrasında 2010’da Kalifornia’ya gitme imkanım olmuş ama 2010’da konferansa katılamamıştım. Bu sene tekrar kısmet oldu ve “Developing Native Applications with JavaScript” isimli sunum ile konferansa katılma imkanım oldu.

Malum Amerika’ya Türkiye’den gidiş bir hayli zahmetli olmakta, gidiş bir günü neredeyse buluyor. Bu sefer de çok farklı olmadı. Hatta THY sağolsun dönüşüm ekstra eziyetli geçti ki bu ayrı bir blog konusu olacak, bekleyin derim 😉

Konferans öncesi 1 gün adaptasyon (jetlag’i atmak için) boş günümüz vardı ve bu günü değerlendirelim istedik. Kalifornia’nın yoğun olmayan kısımlarında toplu taşıma pek kullanılmadığı için tek seçeneğimiz araç kiralamaydı. Uçaktan iner inmez tekrar havaalanına gitmeyelim diye 1 günlük arabamızı kiraladık. Her ne kadar Dodge reserve etsem de şansıma Ford Fusion çıktı. İlk başta hayır desek de sonra arabanın Türkiye’deki modelden farklı olduğunu görünce kabul ettik. O gece çok uyuyamasak da jetlag’den dolayı sabahına yollara düştük. Zira bulunduğumuz yer olan Palm Springs’te Apple Store yoktu 😀 Bu nedenle en yakın Apple Store’un olduğu Palm Desert kasabasına gittik. Apple Store’da Apple bağımlılığım için gerekli malzemeyi (iPad 3 – bir başka yazı konusu) aldıktan sonra yakındaki başka bir Outlet’e giderek diğer alışveriş ihtiyaçlarımızı da karşılayıp arabamızı iade ettik. Sonrasında otele dönüp bir sonraki gün başlayacak olan konferans için uykumuzu almaya çalıştık.

İlk gün açılış gerçekten muhteşemdi. 2008’de gelen yazılım geliştirici sayısı 800 iken bu sene 1700 idi. Öyle ki açılışı ayakta izleyen çok fazla insan vardı. Bu konferansı bu kadar çok sevmemin sebeplerinden birisi de katılımcıların büyük çoğunluğunun CBS ile ilgilenen yazılımcılar olması 🙂 Ayrıca ESRI’deki geliştiricilerle de direk olarak ulaşabilmek güzel bir imkan.

Neyse gelelim ESRI’nin gelecek ile ilgili vizyonuna:

* Konferansın belki de en önemli konusu “Bulut Bilişim”di. Hatta öyle ki 2.gün olan “Keynote” konuşmasında “Steve Riley” “Bulut Bilişim” hakkında konuştu. Tabi konu bu olunca en fazla konuşulan konu da ArcGIS Online oldu. Konferans vesilesi ile bir adet “ArcGIS Online” beta kullanım hakkına sahip olduk, inşaallah ilerleyen zamanlarda bu konu ile ilgili de yazabilirim. Aslında tüm dünyada önemli bir trend olan bu konunun CBS konusunda da trend olması kaçınılmazdı. Zira kaynakların efektif kullanımı düşünülünce Bulut CBS çok mantıklı bir çözüm oluyor. Kullanmadığınız kaynaklara para vermek ya da onları yönetmek zorunda değilsiniz. Tabi bu konunun en büyük eksisi verilerinizin uzaktaki (hatta yurtdışındaki) bir sunucu tutulması ne kadar kanunlara ya da ülkemiz kurallarına uygun.

* Konferansın diğer trend konusu ise mobildi. Mobil ile ilgili o kadar çok oturum vardı ki bazıları arasında tercih yapmak durumnda kaldım. Hatta konferansın videoları yayınlanırsa izleyeceğim birçok oturum daha var diyebilirim. Mobil olarak ESRI şu anda iOS, Android ve Windows Phone’a direk destek verirken, diğer mobil platformlara da Flex ve Javascript ile destek vermekte. Bu arada katıldığım iOS ve Windows Phone oturumlarında SDK’yı yazan kişilerle konuşma imkanı bulup bizim geliştirdiğimiz uygulamalar ile ilgili kafamızdaki soruları tartıştık. Bu arada bu konferansta kurum olarak bir toplantıda ESRI Mobil Geliştirme Ekibi başındaki David Cardella ile de tanışma imkanı bulduk.

* Yukarıdaki 2 konu harici diğer bir trend konu ki benim en çok sevdiğim alan olan HTML5’ti. HTML5 ile yapılan ya da yapılabilecek örnekleri gördükçe insanın geleceğin neden HTML5’te olduğunu anlaması zor gelmiyor.

* Bu arada konferansta Mansour Raad’ın 2 oturumuna katıldım. Bu adam kesinlikle stand-up yapmalı dedim 😀 Sizlerle de videolar yayınlanınca bunları paylaşmak isterim. Kendisi bir çok alanda guru bir yazılımcı olmakla birlikte, konferansta Flex ve HTML5 konusunda uygulamalar hakkında konuştu.

* Son olarak konferans uzun zamandır gerek Twitter gerekse Bloglardan takip ettiğim kişiler ile tanışmak bakımından faydalı oldu. Özellikle CBS Gurusu Dave Bouwman ile tanıştım ki kendisi benim sunuma da gelip soru sorarak oturumu şereflendirdi 😀

Neyse daha anlatacak çok şey var ama daha fazla uzatmadan sonuca bağlayayım diyorum.

Sonuç olarak benim için ne kadar yorucu da olsa çok verimli geçen bir konferanstı diyebilirim. Birçok oturuma katılıp bir çok kişi ile paylaşımda bulunmak ve ESRI gelişticileri ile direk temasta bulunmak güzeldi. Ayrıca ArcGIS Online ve ArcGIS 10.1 Beta programlarına da kayıt olarak yeni nesil sistemleri test edebilmek güzel bir deneyim olacak diye düşünmekteyim.

Umarım CBS yazılımcısı olan herkese bu konferansa katılmak bir gün nasip olur.

Türkiye’de CBS’nin durumu

Artık eskisi gibi yazamıyorum. Vakit bulamıyorum dersem yalan olur. Yazmak istediğim çok fazla konu var fakat bu yazılarda klavyemden dökülecekler biraz tepki çekebilir diye çekiniyorum. Ama gene de alanım olan Coğrafi Bilgi Sistemleri (CBS) konusunda birazcık da olsa birşeyler yazmak istiyorum.

2002 yılında aldığım ilk ders ile CBS’ye girişimi yaptım. Senelerdir bilişim ile uğraşmanın verdiği heyecanla CBS yeni bir alan olarak karşıma çıktı. Haritalar ve uydu fotoğrafları ile mekanlara ve belki de olaylara yukarıdan bakıp, resmin geneline bakmayı öğrendim. Sene 2011 ve hala bu sektörde heyecanımı koruyarak çalışmaya çalışıyorum. Çalışmaya çalışıyorum çünkü Türkiye’de her sektörde olduğu gibi bu sektörü de kendilerini BALON gibi şişirip farklı tanıtan yüzlerce (belki de binlerce) kişi doldurmaya başladı. Kim bunlar derseniz; CBS’ye “ci bi es” diyenlerden tutun da 1-2 defa ArcGIS ya da MapInfo gibi yazılımları açanlara kadar liste uzar gider.

Twitter’da gördüğüm bir yazı çok hoşuma gitmişti :

“Dünyanın temel sorunu, budalalar ve fanatikler kendilerinden hep çok eminken, bilge insanların şüpheyle dolu oluşu” -Bertrand Russell.

Türkiye’de her sektörde olduğu gibi CBS sektöründe de bir “UZMAN” furyası devam ediyor. Herkes CBS Uzmanı, herkes bilirkişi! Lafa gelince mangalda kül bırakmayan kişilerin yaptıkları işlere bakınca nedense dumanları bile tütmüyor. Ama reklamlarını öyle yapıyorlar ki Google Maps ile rakip bile oluyorlar. İşte anlayamadığım nokta bu. Şu an Google Maps ya da Facebook benzeri web uygulamaları yazmak zor değil, hatta çok kolay diyebiliriz ama bir Google ya da Facebook olmak da sadece yazılım ile olmuyor. Arka plana 2-3 sunucu koyarak Google Maps’e rakip olmak bana çok ama çok komik geliyor. Ayrıca bir de Açık Kaynak Kütüphanelerin (örneğin OpenLayers) “Find-Replace” ile “namespace”lerini değiştirip API yazdık demek de ne kadar “Etik” oluyorsa! Sektörde yazılımcı olarak ben de Açık Kaynak kodlardan/kütüphanelerden kullanıyorum ama hiçbir zaman da çıkıp hepsini yazdım demiyorum. 2009 yılında ESRI DevSummit Mashup Challenge’da birincilik aldığım ödülde bile kullandığım kütüphaneleri döküman dosyamda belirttim ve yazanlara teşekkür ettim.

Neyse uzun zamandır yazmayıp yeni yılın ilk yazısını böyle şeylerle doldurduğum için kusura bakmayın, ama biraz kendimi de rahatlatmam gerekiyordu 🙂

Herkese yeni yılın mutluluk, sağlık ve huzur getirmesi dileklerimle yazımı sonlandırırken; yeni yılda günlüğüme daha da önem vermeyi planlıyorum. Hatta iOS için Native uygulama geliştirmek yerine PhoneGap’e geçişim ve bununla ilgili yazılarımı da yazmayı planlıyorum.

Google Earth Engine nedir? Yenir mi?

Malum insanoğlu çevreye bugüne kadar yeterince zarar verdi ve artık iklim değişikliği ve kirlilik gibi konular ortaya çıkınca da verdikleri zararı nasıl geri çevirebiliriz diye düşünmeye başladılar. Artık her gün yeni bir bu gidişata dur deme eylemi ya da aksiyonunu görür ya da duyar olduk.

Google da bu kervana katıldı ve olaya yeni boyut kattı. Google Earth Engine adı verilen projeyi devreye aldı. Projenin isminden dolayı Google Earth’e benzese de yapı olarak biraz farklı. Gene olay haritalar üstüne kurulu fakat bu sefer Google’un yol, uydu görüntüsü ya da yükseklik katmanlarına ek olarak bilim adamlarınca çok kullanılan evrensel katmanları da Google Maps üzerinde görebiliyorsunuz.

Öncelikle Landsat’ın 25 yıllık arşivini ve MODIS görüntülerini kullanabileceksiniz. Tabi olay sadece bu görüntüleri görmek değil bu görüntüler üzerinde analiz de yapmak. Sağladıkları sistem sayesinde (şu an kapalı beta olarak çalışıyor) bilimsel hesaplamalarınızı Google altyapısı ile daha hızlı bir şekilde yapabileceksiniz. Ayrıca Google’ın sağladığı araçlar ile görüntüler üstündeki bulut ve kirlilikleri de silebileceksiniz.

Örneğin Meksika Ulusal Orman Komisyonu ile yaptıkları projede normalde 15.000 (evet yanlış okumadınız on beş bin) saat süren bir görüntü işleme olayını Google’ın altyapısını kullanarak 1 günden kısa bir sürede tamamlamışlar. Böyle bir yapıyı kullanmak gerçekten bilime ve insanlığa hız kazandıracaktır.

Google önümüzdeki 2 yıl için 10 Milyon CPU saatini bu iş için bağışlamış bulunuyor. Daha önce Amazon da S3 hizmetinde uluslararası fayda sağlayan dosyaları ücretsiz barındıracağını duyurmuştu. Böyle adımlar ile insanoğlu umarız yaptıkları yanlışları düzeltmenin bir yolunu bulur 🙂

ve karşınızda : Google Earth 6

CBS ile ilgisi olsun olmasın herkesin favori programları arasında yer alan Google Earth’ün 6. versionu çıktı. Yeni versiyonda 3 yeni özellik göze çarpıyor :

  • Google Streetview ile entegrasyon sağlanmış, artık Google Earth içerisinden Streetview’e erişim var.
  • 3 Boyutlu Ağaçlar ile gerçek görünüm arttırılmış. 50 değişik ağaç türünün sisteme eklendiği söylenmekte.
  • Tarihsel Görüntüleme de geliştirilmiş, böylelikle eski görüntülere daha rahat erişim sağlayabiliyorsunuz.

Tabi bu özelliklerin çoğu veri ile ilgili olduğu için ülkemizde bunları görmemiz şu an için pek mümkün görünmüyor ama gene de hoşgeldin Google Earth 6 diyorum 😀

Bing Maps ve Microsoft’a neler oluyor

Uzun zamandır Açık Kaynak türevlerine savaş açan Microsoft artık bu rüzgara karşı yelken açmak yerine bu rüzgarla beraber yol almayı seçecek gibi. Yazdıklarımdan Microsoft Windows’u ya da Office’i açık kaynak yapacak anlaşılmasın ama Microsoft daha önce ürünü olan Bing Maps’te açık kaynağın bir uzantısı olarak nitelendirilebilecek olan Open Street Maps’e yer verdi. Dün de yeni bir haber ile Open Street Maps’in kurucusu Steve Coast’u Bing Maps’e transfer etti. Ayrıca Open Street Maps’e uydu görüntüsü desteği de vereceğini açıkladı.

Bu gelişme ile Microsoft Google’un kendi harita verilerini toplamasına karşın Open Street Maps’in arkasındaki topluluğu arkasına alarak kendini güçlendirmeyi hedefliyor sanırım. En azından bloglardaki yorumlar buna işaret ediyor.

Hadi hayırlısı diyorum 🙂

Google Maps’e erişim sorunu çözüldü

Dün itibari ile Google tarafından bu adresten yayınlanan yazıda da görüleceği üzere artık Google Maps’e erişim sorununun giderildiğinden bahsetmekte.

Sözde YouTube yasağı bahane edilerek Google diş geçirme çabaları arasında araya kaynayan Google Maps erişimi ile gerek özel gerekse kamu sektöründe sıkça kullanılan Google Maps API kullanımı tekrar düşünülmeye başlamıştı. Neyse ki bu kadar sık güncellenen harita verileri ve uydu görüntüleri üzerine sistemlerini kuran firma ve kamu kuruluşları bir nebze de olsa rahatlamış olacaklar.

Ama gene de alternatifler üzerinde de çalışmak gerektiğini düşünmekteyim. Malum burası Türkiye, ne zaman ne olacağını kestiremiyoruz 😀

Bing Maps yenilenmiş

Uzun zamandır Türkiye verisini güncellemediği için pek uğramadığım Bing Maps (ya da eski adı ile Live Maps) yeni kartografyası ile OpenStreetMap’e benzese de Türkiye için daha detaylı yol haritaları vermeye başlamış.

Ayrıca harita verisinin güncellenmesi ile yol tarifleri de güncellenmiş. Böylelikle ilerisi için Google Maps’e alternatif bir altlığımız da gelmiş oldu. Yeni görünüm için aşağıdaki ekran görüntülerine bakabilir ya da www.bing.com/maps adresine giderek kendiniz test edebilirsiniz.

Google Maps JS API V3 – Olaylar (Events)

http://code.google.com/apis/maps/documentation/v3/events.html

JavaScript de diğer programlama dillerinde olduğu gibi çeşitli olaylar içererek bunlara cevap verip kullanıcı ya da program içerisindeki diğer modüllere ulaşır. Bu olaylar sayesinde programın işleyişi şekillenmektedir. Örneğin haritanın merkezi değiştiğinde şunu yap, ya da şu yaklaşma seviyesinin altına inme gibi şeyleri olaylar yardımıyla yapabilirsiniz.

Yeni versiyonda da V2’deki gibi bir olay sistemi mevcut. Bu versiyonda 2 tip olay bulunmakta :

Kullanıcı Olayları (kullanıcının haritaya tıklaması ya da yaklaşması gibi)
MVC Yapısındaki durum değişiklikleri ile ilgili olaylar

Buradaki MVC (Model-View-Controller) yapısı daha önceki yapıda bahsettiğim Nesne Yönelimli Yapı ile ilgili bir terim. Bunun için biraz Google’dan makale okuyabilirsiniz.

İlgili olayları “google.maps.event” alan adı aldındaki metodlar ile yapabilirsiniz. Bununla ilgili detaylı örneği birazdan vermiş olacağım.

Kullanıcı Olayları :

‘click’ –> ekrana tıklayınca ortaya çıkar.
‘dblclick’ –> ekrana çift tıklayınca ortaya çıkar.
‘mouseover’ –> bir obje üzerine gelince ortaya çıkar.

MVC Durum Değişiklikleri :

Bu tipde haritanın bir özelliği değiştiğinde ortaya çıkabilir. Örneğin haritanın üstünde bir uzaklaşma/yakınlaşma olması durumunda “zoom_changed” olayı ortaya çıkmaktadır.

Harita Olayları :

Harita ile ilgili olayları addListener() metodu ile ekliyoruz. Bu metot 3 parametre almaktadır : sırası ile takip edilecek obje, objenin olayı ve olay sonrası çalışacak fonksiyon/metot. Aşağıdaki örnekte haritanın yaklaşma seviyesinin değişmesi durumunda ne yapacağımızı göreceksiniz.

[code lang=”javascript”]

[/code]

Olaylarda Parametreler :

Bazı olaylar sonucunda ortaya bazı parametrelerde çıkar. Örneğin haritaya tıklanma olayında çalışacak fonksiyona tıklanılan noktanın koordinat bilgileri de gitmektedir. Böylelikle daha interaktif bir geliştirme ortamı sunulmuş olmaktadır. Aşağıdaki örnekte haritayı takibe alıp tıklanıldığında tıklanılan noktanın koordinatları ekranda göstereceğiz.

[code lang=”javascript”]

[/code]

Olaylar sırasında kullanılabilecek farklı teknikler bulunmakla beraber, bunların en önemlisi kapatma (closure) olarak isimlendirilen JavaScript’te özel (private) kullanımını sağlayan bir yaklaşımdır. Fakat bunu sonraki yazılarımızda daha detaylı olarak işleyeceğiz.