<?php
// Kullanıcının konumunu al
$latitude = $_GET['latitude'];
$longitude = $_GET['longitude'];
// Veritabanındaki tüm kayıtları al
$query = "SELECT * FROM locations";
$result = mysqli_query($conn, $query);
// En yakın kaydı bul
$closest_distance = 999999999999;
$closest_location = null;
while ($row = mysqli_fetch_assoc($result)) {
$distance = haversine_distance($latitude, $longitude, $row['latitude'], $row['longitude']);
if ($distance < $closest_distance) {
$closest_distance = $distance;
$closest_location = $row;
}
}
// En yakın kaydı döndür
echo json_encode($closest_location);
// Haversine formülü fonksiyonu
function haversine_distance($lat1, $lon1, $lat2, $lon2) {
$radius = 6371;
$lat1 = deg2rad($lat1);
$lon1 = deg2rad($lon1);
$lat2 = deg2rad($lat2);
$lon2 = deg2rad($lon2);
$delta_lat = $lat2 - $lat1;
$delta_lon = $lon2 - $lon1;
$a = sin($delta_lat/2) * sin($delta_lat/2) + cos($lat1) * cos($lat2) * sin($delta_lon/2) * sin($delta_lon/2);
$c = 2 * atan2(sqrt($a), sqrt(1-$a));
$distance = $radius * $c;
return $distance;
}
?>
Bu script, kullanıcının belirli bir konumundan en yakın kaydı bulmak için veritabanındaki tüm kayıtları dolaşır ve en yakın kaydı döndürür.
Gereksinimler
Bu scripti kullanmak için aşağıdaki gereksinimlere ihtiyacınız vardır:
- PHP 5.3 veya üstü
- MySQL veritabanı
Kurulum
Bu scripti kullanmak için aşağıdaki adımları izleyin:
- nearby_coordinates.php dosyasını sunucunuza yükleyin.
- nearby_coordinates.php dosyasını açın ve gerekli veritabanı ayarlarını yapın. Tarayıcınızda skripti çalıştırmak için http://yoursite.com/nearby_coordinates.php adresini ziyaret edin ve konum bilgilerinizi gönderin (örneğin, http://yoursite.com/nearby_coordinates.php?latitude=37.7749&longitude=-122.4194).
Kullanım
Bu script, kullanıcının belirttiği konumundan en yakın kaydı bulmak için veritabanındaki tüm kayıtları dolaşır ve en yakın kaydı döndürür. Sonuç, JSON biçiminde döndürülür ve latitude, longitude, ve diğer alanları içerir.
Lisans
Bu script MIT lisansı altında lisanslıdır. Detaylı bilgi için LICENSE dosyasını inceleyin.