Spatial Type Kullanımı
ASP.NET teknolojisini kullanarak bulunduğumuz konuma en yakın olan hastane, otel ve parkları listeleyen bir web sitesi tasarladım.
Burada konumları spatial typlerı geography türünde mssql veritabanına kaydederek aldım. Ekstra olarak da otel, hastane ve parklara ait bilgiler yine veritabanında tutulmaktadır.
Projemde kişinin konumunun tutulduğu tablo, hastane tablosu, parkların tablosu ve otellerin tablosu olmak üzere 4 adat tablo bulunmaktadır.
Örneğin hastane tablosu sütunları aşağıdaki gibidir:
• ID: kayıtları birbirinden ayırmak için kullandığım primary keydir.
• Name: hastanenin isimleri tutulmaktadır.
• cityID: bulunduğu şehrin plakasına ait bilgi tutar.
• location: bulunduğu konumu tutar.
• Picture: bir görüntü.
Database verilerimi eklerken kullandığım sorgu;
USE [vtHarita] GO INSERT INTO [dbo].[Hospitals] ([ID] ,[name] ,[cityID] ,[location] ,[picture]) VALUES (2, 'TIP FAKÜLTESİ HASTANESİ' ,17 ,geography::Point(40.1311014,26.3943534, 4326) ,'tip.jpg') GO
Şimdi uygulamaya bakalım; Uygulamayı ilk açtığımızda böyle bir görüntü bizi karşılıyor. Burada haritada gösterilen bizim şuanki konumumuz. Yapmamız gereken dropdown üzerinden sorgulamak istediğimiz otel, hastane veya parkı seçip bize en yakın olanı görmektir. En yakın olanı bulmak için kullandığım fonksiyon STDistance dir. STDistance iki nokta arasındaki uzaklığı hesaplamak için kullanılan bir fonksiyondur. Kullanımı aşağıdaki şekildedir: "select top 1 h.name,h.location,t.location.STDistance(h.location) as uzaklik from Hospitals as h, Temp as t ORDER BY uzaklik DESC";
Resimde görüldüğü üzere dropdown üzerinden hastaneyi seçtiğimizde bize en yakın olan hastaneyi label üzerinde yazdırmıştır.
• ID: kayıtları birbirinden ayırmak için kullandığım primary keydir.
• Name: hastanenin isimleri tutulmaktadır.
• cityID: bulunduğu şehrin plakasına ait bilgi tutar.
• location: bulunduğu konumu tutar.
• Picture: bir görüntü.
Database verilerimi eklerken kullandığım sorgu;
USE [vtHarita] GO INSERT INTO [dbo].[Hospitals] ([ID] ,[name] ,[cityID] ,[location] ,[picture]) VALUES (2, 'TIP FAKÜLTESİ HASTANESİ' ,17 ,geography::Point(40.1311014,26.3943534, 4326) ,'tip.jpg') GO
Şimdi uygulamaya bakalım; Uygulamayı ilk açtığımızda böyle bir görüntü bizi karşılıyor. Burada haritada gösterilen bizim şuanki konumumuz. Yapmamız gereken dropdown üzerinden sorgulamak istediğimiz otel, hastane veya parkı seçip bize en yakın olanı görmektir. En yakın olanı bulmak için kullandığım fonksiyon STDistance dir. STDistance iki nokta arasındaki uzaklığı hesaplamak için kullanılan bir fonksiyondur. Kullanımı aşağıdaki şekildedir: "select top 1 h.name,h.location,t.location.STDistance(h.location) as uzaklik from Hospitals as h, Temp as t ORDER BY uzaklik DESC";