Spatial Reference System
Spatial Reference System (SRS) veya Coordinate Reference System(CRS) coğrafi nesnelerin konumlarını bulmak için kullanılan koordinat tabanlı yerel, bölgesel veya küresel bir sistemdir. Bir SRS farklı mekansal referans sistemeler arasında dönüşümlerin yanı sıra, belli bir harita projeksiyonu tanımlar. Bazı koordinat sistemleri:
- Universal Transverse Mercator koordinat sistemi
- Birtish national grid reference system
- Hellenic Geodetic Reference system 1987
- Lambert conformal conic projection
- United States National Grid
- Jordan Transverse Mercator
- International mapcode system
- Irish grid reference system
Mekansal referans sistemleri SRID olarak ifade edilen benzersiz tamsayı kimlik numaraları ile ifade edilirler. European Petroleum Survey Group(EPSG) tarafından tanımlanmış olan SRID’ler de vardır ve bunlar EPSG kodu ile ifade edilirler. Örneğin “EPSG:4326” WGS84 projeksiyonu için EPSG kodudur. “EPSG:3857” ise WGS84 WebMercator için EPSG kodudur. Bu iki projeksiyon arasındaki fark “EPSG:4326” sisteminde dünya bir küre olarak ele alınırken “EPSG:3857” sisteminde dünya bir elips olarak düşünür. “EPSG:4326” enlem/boylam(lon/lat) koordinat sistemini kullanırken “EPSG:3857” x/y kartezyen koordinat sistemini kullanır. Bu sistemler sayesinde de yuvarlak yapıdaki dünya düz bir zemin üzerinde temsil edilebilmektedir.
SRS için tanımlanan bilgiler veritabanlarında OCG tarafından tanımlanan spatial_ref_sys metadata tablosunda tutulur. Bu tabloda SRID, AUTH_NAME, AUTH_SRID, SRTEXT gibi değerler bulunur. Konumsal veritabanı içinde birden fazla konumsal referansa sahip konumsal nesne tablosu veya raster veri bulunabilir.
Mekansal referans sistemleri (SRS) Open Geospatial Consortium (CRS) tarafından kolay bir şekilde erişim sağlamak amacıyla belli standartlarda herkesin anlayabileceği bir metin standardında tanımlanırlar. Bu standart Well Known Text(WKT) olarak isimlendirilir.
Well Known Text(WKT)
WKT bir harita üzerinde vektör geometri nesnesini temsil etmek için ve mekansal referans sistemleri arasında dönüşümler yapabilmek için geliştirlmiş bir metinsel işaretleme dilidir. WKT’nin binary karşılığı Well Known Binary (WKB)’dir. WKB ile WKT ile tanımlanan bilgilerin transferi ve veri tabanlarında saklanması için kullanılır. Bu formatlar OGC tarafından ISO/IEC 13249-3:2011 standardı olarak tanımlanmıştır.
WKT ile temsil edilen 18 adet geometri türü vardır. Bunlar:
- Geometry
- Point, Multipoint
- LineString, MultiLineString
- Polygon, MultiPoygon, Triangle
- CircularString
- Curve, MultiCurve, CompundCurve
- CurvePolygon
- Surface, MultiSurface, PolyhedralSurface
- TIN, TINZ
- GeometryCollection
Geometri koordinatları 2D (x,y), 3D (x,y,z), 4D (x,y,z,m) şeklinde temsil edilir.
Örnek WKT geometri gösterimleri:
- POINT(25 18)
- LINESTRING(10 15, 20 25, 50 55)
- POLYGON((20 25, 50 55, 80 95, 20 25))
- POLYGON((20 25, 50 55, 80 95, 20 25), (10 15, 18 22, 17 23, 10 15))
- MULTIPOINT((11 12), (24 60), (40 40), (75 80))
- MULTIPOINT(11 12, 24 60, 40 40, 75 80)
- MULTILINESTRIN((15 15, 23 80, 10 40), (16 16, 33 10, 25 50, 38 09))
Well Known Binary(WKB)
Geometri nesnelerini taşınabilir ve veritabanlarında depolanabilir hale getirmek amacıyla bitişik byte dizisi şeklinde temsil eden ve OGC tarafından standartlaştırılan bir gösterim şeklidir. İki boyutlu(2D) geometrileri temsil eden bir kodlama şeklidir. WKB gösterimleri genellikle onaltılık sayı sistemindeki dizelerle yapılmaktadır.
SQL veritabanında WKB şeklinde depolanan geometrilere ODBC Client gibi veri sağlayıcılar aracılığı ile erişilebilmektedir. Konumsal veri üzerinde geometrik işlemleri gerçekleştirebilen fonksiyonlar SQL, Java veya C-API tarafından sağlanmaktadır.
Bir geometri için yapılan WKB gösterimi yapılırken, öncelikle geometri nesnesinin serileştirilmesiyle elede edilen sayı kümesinden alınan işaretsiz tamsayı (Unsigned Integer) ve ondalık(Double) sayılar elde edilir. Daha sonra elde edilen her sayı, standart ikili(binary) sayı sistemine dönüştürülür.
Binary ifadelerin bilgisayar sisteminde serileştirilmesi sırasında işaret bitleri, en önemli ilk byte veya en az önemli ilk byte gibi bazı standartlar belirlenmiştir. Serileştirme işlemi, network ortamında bilgisayarlar arasında veri transferini gerçekleştirebilmek amacıyla gerçekleştirilir. Serileştirme için kullanılan iki tür kodlama vardır. Bunlar XDR ve NDR dir.
XDR (big-endian)
- İşaretsiz tamsayının XDR gösterimin en önemli byte önce yazılır.
- Ondalik(Double) sayıların XDR gösteriminde işaret byte önce yazılır.
NDR (little-endian)
- İşaretsiz tamsayının NDR gösterimin en önemsiz byte önce yazılır.
- Ondalik(Double) sayıların NDR gösteriminde işaret byte sona yazılır.
Geometri Nesnelerinin WKB Gösterimi
Geometri gösteriminde ilk byte veri için byte sırasını gösterir.
- 00: Düşük son haneli (big endian)
- 01: Büyük son haneli (little endian)
İkinci byte geometri türünü temsil eden bir tamsayıdır.
Type |
2D |
GEOMETRY |
0000 |
POINT |
0001 |
LINESTRING |
0002 |
POLYGON |
0003 |
MULTYPOINT |
0004 |
MULTULINESTRING |
0005 |
MULTIPOLYGON |
0006 |
GEOMETRYCOLLECTION | 0007 |
CIRCULARSTRING | 0008 |
COMPUNDCURVE | 0009 |
CURVEPOLYGON | 0010 |
MULTICURVE | 0011 |
MULTISURFACE | 0012 |
CURVE | 0013 |
SURFACE | 0014 |
POLYHEDRALSURFACE | 0015 |
TIN | 0016 |
TRIANGLE | 0017 |
Her geometrik veri türü benzersiz bir veri yapısına sahiptir. Koordinatlar double tipinde temsil edilir.
Örneğin: POINT(2.0, 4.0) geometrisi 000000000140000000000000004010000000000000 şeklinde 21 byte ile temsil edilir. Burada:
- 1 byte integer 00 veya 0: Düşük son haneli
- 4 byte integer 00000001 veya 1: POINT 2D
- 8 byte float 4000000000000000 veya 2.0: X koordinatı
- 8 byte float 4010000000000000 veya 4.0: y koordinatı
Kaynaklar: