SQLKolay – Android

SQLite pek çok mobil işletim sisteminde de kullanılan gömülü ilişkisel veritabanıdır. Android platformu da standart olarak desteklemektedir. Alternatif olarak Realm, UnQlite, Snappy DB gibi çözümler de mevcuttur. Buna karşın geliştirdiğim Android projelerde Sqlite ‘ı tercih ettiğimi belirtmeliyim.

Android üzerinde Sqlite kullanırken temel olarak SQLiteOpenHelper sınıfından türetilen sınıf kullanılabilir. Fakat proje büyüdükçe, birden fazla tabloyla çalışılmaya başlandığında işlerin çığırından çıktığını göreceksiniz. Bu noktada ORM kütüphaneleri devreye girerek geliştiriciyi veritabanı ile cebelleşmekten kurtarmaktadır. Başlıca olarak Room, greenDAO, ORMLite, SugarORM, ActiveAndroid şuan popüler olan kütüphanelerdir.

ORM kütüphanelerinin geliştiriciye kolaylık sağladığına katılıyorum fakat bazı noktalarda da sadelikten uzaklaştırdığını da belirtmeliyim. İncelediğim ORM araçlarından sonra bir haftasonu projesi olarak SQLkolay kütüphanesini geliştirdim. Kütüphane kullanıcıya belirli bir tasarım örüntüsü sunduğu için büyüyen projelerde kargaşayı engelleyeceğini düşünüyorum. Ayrıca geliştiriciyi SQL den çok uzaklaştırmadığı için performansı da olumsuz yönde etkilemeyecektir.

Projeye https://github.com/MSBilgin/SQLkolay adresinden erişebilirsiniz.

Continue reading

Speedy Layer Kullanımı

You can also read this page in English

Konumsal analizler gerçekleştirirken gerçek veriler ile çalışmadan önce test verileri ile çalışmak çeşitli durumlarda elimizdeki verinin güvenliği açısından daha iyi olabilmektedir. Bilhassa verinin değiştirilmesinin söz konusu olduğu durumlarda yedeğini alıp bunun üzerinde çalışmaya gidilmektedir. Bu işlem genellikle asıl verinin bir kısmının veya tamamının kopyası alınarak yapılmaktadır. Hele ki verinin büyük olduğu durumlarda veya birden çok işlem adımının olduğu durumlarda kopyalanan verinin hacmi de artmaktadır. Ayrıca bu işlemin kendisi de başlı başlına bir süreç haline gelmektedir. Ve onlarca kopya dosya ortaya çıkmaktadır. Test işlemi bittikten sonra artık bu veriler gereksiz olacağı için bir de temizlenmesi gerekmektedir.

Yularıda bahsettiğim süreci konumsal veri ile çalışan biri olarak sık olmasa bile arada sırada yaşamaktayım. Ve bu yorucu süreci kolaylaştırmak için veriyi RAM de kopyalayıp onun üzerinde test yapmaya karar verdim. Bunun için Speedy Layer eklentisini geliştirdim. Bu eklenti ile QGIS ortamında bir katmanı Memory Layer (RAM de tutulan katman) haline getirerek onun üzerinde istediğiniz değişiklikleri yapabilirsiniz. Böylece verinin aslına dokunmadan çalışabilirsiniz. En iyi özelliklerinde biri de RAM ‘deki veri ile kat kat daha hızlı çalışabilir, render alabilirsiniz. Continue reading

Speedy Layer Usage

While performing spatial analysis, its better to work firstly with test data in some cases like corruption of original data. Taking backup of original data and than working with test data is safer. This is usually done by taking a copy of all or a portion of the original data. In cases like multiple analysis steps or huge data, the volume of copied data is getting bigger. So preparing test data becomes an individual process. After all, dozen of copy files are generated. Also these files will be unneccessary after testing so they must be cleaned.

I experience sometimes the process mentioned above as someone who works with spatial data. I decided to make this process easier by copying data to RAM. And I have developed Speedy Layer plugin. By using this QGIS plugin you can transform a vector layer to Memory Layer (stored in RAM) and play on it. So you can perform tests without touching original data. One of the best feature is speed. Memory Layers are faster in analysis and rendering because they stored in RAM. Continue reading

Feature Loader Kullanımı

This page also available in English

Konumsal veritabanları ile çalışanlar için ellerindeki verilerin (sahadan gelen, analizlerden üretilen vs.) aktarımı işlemi bazı durumlarda oldukça zahmetli olmaktadır. Daha çok verinin yapısı (öznitelikler, koordinat sistemi vs.) ile veritabanındaki tablonun yapısı arasındaki farklar nedeniyle çeşitli dönüşümlerin yapılması gerekli olmaktadır. Bu konu hakkında daha önceden yazmış olduğum GeoKettle: Açık Kaynaklı Konumsal ETL Aracı yazımda kısmen bahsetmiştim.

Yukarıda bahsettiğim gibi elimdeki verileri Oracle Spatial ‘e aktarmam gereken bir işle karşılaştım. QGIS kullanarak bu işlemi gerçekleştirmeyi Copy Features (CTRL + C) ve Paste Features (CTRL + V) ile denedim fakat başarılı olamadım. Çünkü öznitelik yapıları birbirleri ile uyuşmuyordu. Bunun üzerine MapInfo ‘nun Easy Loader aracı ile bu işlemi gerçekleştirdim. QGIS ‘in böyle bir aracı olmamasını görünce hemen kolları sıvadım. Feature Loader adlı eklentiyi geliştirdim. Bu eklenti ile QGIS ortamındaki bir katmandaki verileri diğer bir katmana kolaylıkla aktarabiliyorsunuz. En önemli özellikleri arasında uygun öznitelikleri kendi tespit ediyor olması ve QGIS ‘in desteklediği tüm formatlar (Oracle, Postgis, Spatialite, SHP, TAB etc…) ile çalışabilmedir. Continue reading

Feature Loader Usage

While working with spatial databases loading data from another datasources could be problematic. Mostly SRID difference and attribute (field) mismatch need transformation before starting loading operation. I have wrote another post GeoKettle: Açık Kaynaklı Konumsal ETL Aracı about this subject.

As mentioned above, a few days ago i need to load some GIS data to Oracle Spatial. I have tried with QGIS by Copy Features (CTRL + C) and Paste Features (CTRL + V) but not succeed. Because attribute fields were not matched. So I tried with MapInfo’s Easy Loader tool and made it done.  So I rolled up sleeves to make this operation done in QGIS. And I have developed Feature Loader. This plugin lets you load spatial data from one layer to another one by simple three click. It matches fields automatically and support all formats that QGIS support (Oracle, Postgis, Spatialite, SHP, TAB etc…). Continue reading

Usage of Geometry Updater

While working with spatial datasets, uptade operation is one of the most important issues. We can sptlit up updating vector datasets to two groups as geometry update and attribute update. Lots of desktop GIS software have update tools for attributes but not for geometry. Maybe I did not come across.

I prefer QGIS for daily regular works (partially working with MapInfo). A few days ago I needed to updated some spatial datasets geometries. I searched but not found any useful QGIS plugin for this task. So I dediced to develop another QGIS plugin. Here is Geometry Updater.

Continue reading

Geometry Updater Kullanımı

Coğrafi veriler ile çalışırken karşılaşılan en temel ihtiyaçlardan birisi de var olan verilerin güncellenme işlemidir. Vektörel veriler de güncelleme işlemini gerek geometri gerekse de öznitelik olarak ikiye ayırabiliriz. Pek çok masaüstü CBS yazılımında öznitelikler temel araçlarla kolayca güncellenebilirken geometri güncelleme özelliği desteklenmemekte ya da ben farketmedim.

Günlük işlerimde masaüstü CBS işlemleri için genellikle QGIS ‘i tercih etmekteyim (Kısmende MapInfo ‘yu kullanıyorum). Geçtiğimiz günlerde elimizdeki bazı konumsal verilen özniteliklerine dokunmadan sadece geometrilerinin güncellenmesi gerekiyordu. Ve yukarıda bahsettiğim gibi QGIS’in böyle bir aracı yoktu. Bu işlemi gerçekleştirmek için QGIS’te bir eklenti daha yazmaya karar verdim. İşte Geometry Updater eklentisi bu şekilde ortaya çıkmış oldu. Continue reading