Herkese iyi günler arkadaşlar,

Bir listem var ve bu listedeki verilerimin lat,lng(konum) değerleri var mysql tablomda. Şimdi yapmak istediğim listeyi , kişinin konumuna göre çekmesi.Gmap'in fonksiyonunu kullanarak ajax ile tarayıcıdan gelen geçerli konumu lat,lng'u gönderdiğim dosyada listemi oluşturuyorum. Aynı şekilde bunların veritabanında lat,lng diye sütunları da var . Fakat bu veriyi çekerken konumuna yakın olanı çekmesi için ne yapacağımı bilmiyorum.

Örnek tablomdaki değeri lat:40,000 - lng:25,000 olsun . kişinin otomatik konumu da lat:41,000 - lng:24,000 olsun . Amacım bu listeyi konumuna göre en yakınlarını listeletmek. Tabiki başka yöntemler olabilir bu konuda bilgim yok ben bu şekilde yapmaya çalıştım fakat bi türlü beceremedim.

Eğer istediğim şeyi anladıysanız ve yöntemlerinizi paylaşırsanız çok sevinirim . Teşekkürler..

soruldu: 30 Haz '15, 18:03

ugrkhrmn's gravatar image

ugrkhrmn
0111
cevap kabul oranı: 0%


Aşağıdaki fonksiyon iki konum arasındaki mesafeyi mil ve km cinsinden bulur.vt den verileri çekip bu fonksiyon sonucuna göre listeleyebilirsin.

kullanımı

   $dist=distance(27.00212,40.20125,27.02154,40.12054,"K"); //km cinsinden 
   echo $dist;
   // çıktı :  8.2816062065059

fonksiyon

   function distance($lat1, $lon1, $lat2, $lon2, $unit) {
    $lat1=floatval($lat1);
    $lat2=floatval($lat2);
    $lon1=floatval($lon1);
    $lon2=floatval($lon2);
    $theta = $lon1 - $lon2;
    $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) +  cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
    $dist = acos($dist);
    $dist = rad2deg($dist);
    $miles = $dist * 60 * 1.1515;
    $unit = strtoupper($unit);

    if ($unit == "K") {
      return ($miles * 1.609344);
    } else if ($unit == "N") {
        return ($miles * 0.8684);
      } else {
          return $miles;
        }
  }
permanent link

cevaplandı: 30 Haz '15, 21:09

Mustafa's gravatar image

Mustafa
226449
cevap kabul oranı: 0%

değiştirildi: 30 Haz '15, 21:10

teşekkürler hocam

permanent link

cevaplandı: 30 Haz '15, 21:45

ugrkhrmn's gravatar image

ugrkhrmn
0111
cevap kabul oranı: 0%

Cevabınız
toggle preview

Bu soruyu takip et

E-Posta üzerinden:

Üyelik girişi yaptıktan sonra abonelik işlemlerini yapabilirsiniz

RSS üzerinden:

Cevaplar

Cevaplar ve Yorumlar

Yazı Formatlama

  • *italic* ya da _italic_
  • **bold** ya da __bold__
  • link:[text](http://url.com/ "başlık")
  • resim?![alt text](/path/img.jpg "başlık")
  • liste: 1. Foo 2. Bar
  • temel HTML etiketleri de kullanılabilir

Bu sorunun etiketleri:

×168
×144
×2

Soruldu: 30 Haz '15, 18:03

Görüntüleme: 478 kez

Son güncelleme: 30 Haz '15, 21:45

powered by BitNami OSQA