21 Mayıs 2015 Perşembe

DATABASE' E SPATİAL TYPE VERİ EKLEME VE İLGİLİ İŞLEMLER YAPMA

1.) Proje Microsoft Sql Server Management Studio kullanacağız.

2.) İlk olarak MARİNE_TAKİP adında bir database olusturalım:
           
            CREATE DATABASE MARİNE_TAKİP

            USE MARİNE_TAKİP


3.) Olusturduğumuz bu database' e " tekne " adında bir table olusturalım:

            CREATE TABLE tekne (id int primarykey, tekne_ad nvarchar(20), marine                                                         nvarchar(20), konum geography)

4.) Olusturduğumuz bu tablonun Column Name leri sırasıyla id, tekne_ad, marine, konum olarak belirleyelim.Data Type' larını sırasıyla int, nchar, nchar ve söz konusu ödevimizin yapılış amacı olan Spatial Type olan geography.Her column Not Allow nulls yapılarak değer girilmesini zorunlu hale getirelim.

5.) Bu yeni tablomuza değerler girelim.Bunu için şu iki komutu kullanalım:

INSERT INTO tekne(id, tekne_ad, marine, konum) VALUES(1, 'seabird', 'canakkale',geography::STGeomFromText('POINT(40.123 26.123)', 4326);

INSERT INTO tekne(id, tekne_ad, marine, konum) VALUES(2, 'tansever', 'antalya',geography::STGeomFromText('POINT(36.123 30.123)', 4326);

Böylece tablomuzun iki satırı doldurulmuş olacak.Burada önemli olan konu database  Spatial type verinin nasıl atandığını görmektir. Görüldüğü üzere konum bilgisini girmek amcıyla kullandığımız komutta geometry spatial type tanımlanmaktadır.Geometry türünde POINT örneği tanımladık.POINT' le bulunduğumuz konumlar enlem ve boylam olarak verilmektedir, parantez içlerine bu değerleri giriyoruz. Devamında yer alan 4326  ise bulunduğumuz konumun uluslararası çoğrafya sisteminde tanımlı olduğu alanı göstermektedir.POINT yanında LINESTRING, POLYGON, MULTIPOINT, MULTILINESTRING, MULTIPOLYGON gibi türlerde tanımlanmaktadır.






ÇALIŞTIRILAN KOMUTLAR:

SELECT *
FROM tekne;


SELECT konum.STAsText()
FROM tekne;


SELECT tekne_ad,konum.STAsText() as konum
FROM tekne;


SELECT tekne_ad,konum.STAsText() as konum
FROM tekne
WHERE id='1';


DECLARE @marine geography
SELECT @marine = tekne.konum
FROM tekne
WHERE id= '1'


SELECT t2.*,t2.konum.STAsText() as konum
FROM tekne t1, tekne t2
WHERE  t1.tekne_ad='seabird' and  t1.konum.STDistance(t2.konum)<200*1000
ORDER BY t1.konum.STDistance(t2.konum) DESC


SELECT t2.*,t1.konum.STDistance(t2.konum) as mesafe
FROM tekne t1, tekne t2
WHERE  t1.tekne_ad='tansever' and  t1.konum.STDistance(t2.konum)<200*1000

ORDER BY mesafe DESC

Hiç yorum yok:

Yorum Gönder