Tweet

Maps Uygulamaları İçin SQL ile Kilometre Çaplı Yer Sorgulama

Herkese merhaba bir projede kullandığım sql örneğini sizlerle paylaşmak istedim. Aşağıda yazan sql kod ile veritabanınızda bulunan yerleri latitude ve logitude değerlerine göre bulunduğunuz yerden sizin belirleyeceğiniz kilometre çapında yakından uzağa doğru listeler.

CODE:
SELECT yer_adi,lat,lng, 6371 * ACOS(COS(RADIANS(@kendi_lat_degerim)) * COS(RADIANS(lat)) * COS(RADIANS(lng) - RADIANS(@kendi_lng_degerim)) + SIN(RADIANS(@kendi_lat_degerim)) * SIN(RADIANS(lat))) AS mesafe FROM Yerler	WHERE (6371 * ACOS(COS(RADIANS(@kendi_lat_degerim)) * COS(RADIANS(@kendi_lat_degerim)) * COS(RADIANS(lng) - RADIANS(@kendi_lng_degerim)) + SIN(RADIANS(@kendi_lat_degerim)) * SIN(RADIANS(lat))) <= @cap) ORDER BY mesafe


İşinizi yarar diye düşünüyorum
Dia
okanatabag@gmail.com
28 Kasim 2013 04:32

Yorumlar (1)




jewor
6 Ekim 2014 09:53
Güzel eline sağlık kullanışlı matematiğini çözmeyle uğraşmadım. Alttaki gibi kullanırsanız hesap 1 defa yapılır.
CODE:
SELECT * FROM (
SELECT yer_adi,lat,lng, 6371 * ACOS(COS(RADIANS(@kendi_lat_degerim)) * COS(RADIANS(lat)) * COS(RADIANS(lng) - RADIANS(@kendi_lng_degerim)) + SIN(RADIANS(@kendi_lat_degerim)) * SIN(RADIANS(lat))
) AS mesafe
FROM Yerler
) yrlr
WHERE yrlr.mesafe <= @cap)
ORDER BY yrlr.mesafe;

Ziyaretçi olarak yorum yazamazsınız . Üye olmak için tıklayın Üye iseniz giriş yapın.


Desteklediklerimiz

Teknoloji


MENÜ » FORUM
Menü » Takip et
RSS Facebook Twitter Friendfeed
Sık Kullanılanlar Google Yahoo Live
Menü » Paylaş
E-Posta ile gönder Twitter Facebook Friendfeed
Buzz Stumbleupon Delicious Digg