Konumsal Veritabanlarına Özel SRID Eklemek

4 Haz

Mekansal veri depolayabilen veri tabanlarında SRID değerlerini listelemeyi ve herhangi bir tabloya ait geometri alanının SRID değerini güncellemeyi bir önceki yazımızda incelemiştik.

Oracle, PostGIS ve MsSQL gibi sık kullanılan veritabanlarında varsayılan olarak gelen bir çok SRID değeri mevcuttur. Bu SRID değerleri dünyada çok bilinen referans sistemlerine aittir. Ancak bazı ülkeler bu referans sistemleri yerine kendi özel referans sistemlerini kullanmayı tercih etmektedirler. Dolayısıyla bu özel referans sistemleri Çok bilinen SRID listesine dahil olmayabilir. Bu gibi durumlarda özel mekansal referansları veritabanlarına kendimiz eklemek durumunda kalırız.

Spatial Reference sitesi üzerinde aradığımız referansları bulabilmek mümkündür. Bu yazıda ki örnekte ülkemizde kullanılan IRTF96 koordinat sisteminin PostGIS veritabanına nasıl tanımlandığını inceliyor olacağız. Buradan ITRF96 projeksiyona ait bilgilere ulaşabilmek mümkündür.

PostGIS veritabanına ITRF96 koordinat sistemini tanıtabilmek için aşağıdaki SQL komutunu kullanmak yeterli olacaktır.


insert into spatial_ref_sys (srid, auth_name, auth_srid, proj4text, srtext)
values ( 97835,
        'sr-org',
        7835,
        '+proj=tmerc +lat_0=0 +lon_0=27 +k=1 +x_0=500000 +y_0=0 +ellps=GRS80 +units=m +no_defs ',
        'PROJCS["ITRF96 / TM27",
          GEOGCS["GCS_ITRF_1996",
          DATUM["D_ITRF_1996",
                 SPHEROID["GRS_1980",6378137.0,298.257222101]],
                 PRIMEM["Greenwich",0.0],
                 UNIT["Degree",0.017453292519943295]],
                 PROJECTION["Transverse_Mercator"],
                 PARAMETER["central_meridian",27.0],
                 PARAMETER["latitude_of_origin",0.0],
                 PARAMETER["scale_factor",1.0],
                 PARAMETER["false_easting",500000.0],
                 PARAMETER["false_northing",0.0],UNIT["m",1.0]]');

Artık bu SRID değerini veritabanındaki tablolarımızın geometri alanlarına uygulayabiliriz.

Konumsal Veritabanı Tablolarında SRID Düzenlemesi

1 Haz

Coğrafi bilgi sistemleri uygulamalarında veritabanı içerisinde tutulan veriler, metinsel boyutunun yanında coğrafi boyutu yönünden de ele alınmaktadır. Coğrafi veya konumsal veya mekansal olarak adlandırılan verileri depolamak bu verilerin bazı özelliklerini bilmeyi ve kullanabilmeyi gerektirmektedir.

Bu yazıda coğrafi verilerin SRID özelliğini konu edinmiş olacağız. SRID açılımı “Spatial Reference System Identifier” ve Türkçe meali “Mekansal Referans Sistem Tanımlayıcısı” olan bir kavramdır. SRID coğrafi veri tutan tablolardaki geometri alanlarına ait projeksiyon sistemlerini belirtmek için kullanılan sayısal bir kimlik numarasıdır.

Bu yazıdaki örnek uygulamalar piyasada şu anda kullanılan popüler veritabanlarından Oracle, Postgresql veya MsSQL tabloları üzerinde bulunan geometri sütunlarının SRID özelliklerini belirlemek şeklinde olacaktır.

Bir veritabanında bulunan SRID listesini görebilmek için farklı veritabanlarına göre aşağıdaki komutlar kullanılmaktadır.

Oracle

SELECT * FROM sdo_coord_ref_sys

PostGIS

SELECT * FROM spatial_ref_sys

MsSql

SELECT * FROM spatial_reference_systems
SRID Listesi
SRID Listesi

Bir veritabanı tablosundaki geometri alanının SRID değerini değiştirmek için aşağıdaki komutlar kullanılmaktadır. Aşağıdaki örnekte tablo adı “roads” ve geometri alanının adı “geom” şeklinde düzenlenmiştir.

Oracle

UPDATE roads T
SET T.geom.SDO_SRID = 4326
WHERE T.geom IS NOT NULL

PostGIS

SELECT UpdateGeometrySRID('roads','geom',4326);

MsSQL

UPDATE dbo.roads SET geom.STSrid = 4326;

Artık “roads” tablosunun “geom” alanı için SRID değeri 4326 olarak düzenlenmiş oldu. SRID değeri düzenlenmemiş olan tablolar için varsayılan değer boş veya sıfır olacaktır. Bu durumda verilerin kullanılması için her defasında dönüşüm yapmak zorunda kalabiliriz. Verilerimizi Google, Bing veya Yandex gibi haritalarda kullanmayı planladıysak bu haritaların SRID değerlerini bilmemiz ve geometri alanlarımızı bu değer ile güncellemeliyiz.

Bir sonraki yazıda görüşmek dileğiyle.