Geography Tipi Kullanımı

Geography Tipi Kullanımı (SQL Server 2008)

Geography veri tipi aslında orache mimarisinde görmeye alışık olduğumuz bir veri tipi. Sql Server 2008 R2 ile benim, SqlServer tarafında da rastladığım ancak şu zamana kadar herhangi bir projede kullanma fırsatı bulamadığım bir veri tipi.

Şu an Dijital Ajans Metromedya ‘nın geliştirdiği Lokasyon Bazlı iPhone Uygulamasında kullanmaya niyet ederek biraz araştırma yaptım.

Geography veri tipi genel olarak , geospatial datalar olarak sınıflandırılıyorlar.Bu yazıda geospatial dataların depolanma ve kullanımlarını basit olarak anlatıyor olacağım.

Geo Spatial Data konusunda bilmemiz gereken en önemli şeylerden birisi de SQL Server 2008 ile bizlere sunulan yeni data tipleri olmalarıdır. Daha öncede bahsettiğim gibi aslında Oracle bize aynı olanağı çok daha önce de sunmaktaydı. SpatialData Types olarak adlandırılan bu yeni data tipleri, bize dünya üzerindeki bir noktayı enlem ve boylam bilgileriyle depolama şansı verir.

Kordinatları tutmamıza yarayan data tipi geography dir. Ayrıca SQL Server bu hizmetin yanında, bize bu kordinatlar üzerinde bazı işlemler yapma olanağı sağlayan metodlar da sunuyor. Zaten dananın kuyruğunun koptuğu yerde burası. :)

Bu dökümantasyonda geography tipinden dataların nasıl depolanıp, nasıl kullanılacağını göreceğiz.

Geography tipinden verilerin tanımlanması:

DECLARE @geo geography

SET @g eo = geography::Point(41.010467,28.939179 , 4326)

Point(…) bize dünya üzerindeki bir noktanın kordinatlarını verir. Point’in içindeki değişkenler ise sırasıyla enlem,boylam ve SRID’dir. SRID ise bri referanstır, sistemin düzlemsel mi yoksa dünyanın şekli gibimi olduğunu belirtir. Bizim kullandığımız 4326 ise normal gps sistemlerinde kullanılandır. Ve herzaman bunu kullanacağız.

Direk olarak yukarda gördüğümüz “Point(41.010467,28.939179 , 4326)” kısmını tabloya yazamaz mıyız diye düşünülebilir ama malesef yukarıdaki gibi bir tanımlama yapmamız gerekiyor. Bunun sebebi de bu sistemingeography tipinden verileri binary olarak database’te depolamasıdır.

Örnek:

7

Geography  tipi verilerin database de depolanması

75074841

yukarıdaki  gibi bir sorgu kullanarak database’e kordinat bilgisini ekleyebilirsiniz.

Geography tipi verilerin doğru görüntülenmesi

Geography tipinden datalar binary olarak kaydedildiği için bunları görüntüleyeceğimizde dönüşüm yapmamız gerekir. Bunu da şöyle bir kod kullanarak yapabiliriz;

5

Geography Tipinden veriler üzerinde metodların kullanımına örnekler

Bizim en çok kullanacağımız metod STDistance() metodudur. Bu metod dünya üzerineki iki nokta arasındaki uzaklığı hesaplar. Bu metod sayesinde bir noktaya en yakın hastaneleri bulma ve bunun gibi pek çok işlemi gayet basit bir şekilde bulabiliriz. Bunu pek çok şekilde örnekleyebiliriz.

Örnek 1: Belirlediğimiz bir noktaya en yakın 3 noktayı bulan sorguyu yazalım.

13027791

Bunun sonucu şöyle olacaktır;

3

Örnek 2: Belirlediğimiz bir noktaya 100 metreden yakın noktaları bulan sorguyu yazalım.

12679157

bu sorgunun sonucu da şöyle olacaktır;

1

Şimdilik bu kadar. iphone uygulama geliştirme konusu ile ilgili yazılarım yolda.Görüşmek üzere.

Geography Tipi Kullanımı” üzerine 3 düşünce

  1. Tuğrul Emre Atalay

    Vermiş olduğunuz önemli bilgilerden dolayı teşekkür ederim.

Bir Cevap Yazın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>