Etiket arşivi: mysql latitude longitude

Mysql ile iki konum arasındaki uzaklığı ölçmek

Mysql 5.7 ile gelen native bir method ile, verilen 2 konum (latitude, longitude noktası) arasındaki uzaklığı metre cinsinden ölçebilirsiniz. Tanıştırayım: ST_Distance_Sphere

Örneğin, üyelerinizin 41.0049823,28.7319855 konumuna uzaklığını ölçmek istiyorsunuz. Hızlıca bir sorgu yazalım:

<?php
$latitude = 41.0049823;
$longitude = 28.7319855;
$sql =  "SELECT users.id, users.username, ST_Distance_Sphere(point(users.longitude, users.latitude),point({$longitude}, {$latitude})) as distance FROM users"

Sorgu çıktısına, verilen konumdan uzaklığı metre olarak eklenecektir. Dikkat etmeniz gereken, longitude-latitude ikilisi olarak sorgu yapılıyor.

Verilen noktaya 100 metre çapındaki uzaklıkta olan kullanıcıları da listeleyebilirsiniz, neden olmasın?

<?php
$latitude = 41.0049823;
$longitude = 28.7319855;
$sql = "SELECT users.id, users.username, ST_Distance_Sphere(point(users.longitude, users.latitude),point({$longitude}, {$latitude})) as distance FROM users WHERE distance < 100"

Bu methodu bilmeden önce sinüsler, kosinüler, tanjantlar filan havada uçuşuyordu. Hem yavaş çalışıyordu, hem de doğru sonuç vermiyordu. Bu methodu öğrenince dünyam aydınlandı. Teşekkürler ST_Distance_Sphere