Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> SQL i sortowanie według odległości GPS
acztery
post 12.09.2011, 13:40:09
Post #1





Grupa: Zarejestrowani
Postów: 945
Pomógł: 7
Dołączył: 15.03.2005
Skąd: katowice

Ostrzeżenie: (0%)
-----


Witam,

Mam bazę 30 tys rekordów, każdy rekord ma dane geograficzne (szerokość i długość - dziesiętną) jak zrobić zapytanie które pokaże listę posortowanych rekordów według dystansu.



Czyli najpierw obliczamy dystans dla każdego rekordu na podstawie danych lokalizacyjnych. potem sortujemy.

żeby zobrazować.

mam listę kin w Polsce użytkownik normalnie ogląda listę posortowaną według daty dodana. Ale jak w swoich ustawieniach konta poda swoje dane geograficzne to na ich podstawie będzie mógł zobaczyć co jest najbliżej jego lokalizacji.

na razie wyklułem coś takiego:

  1. function m_listdatabase ($category)
  2. {
  3. return $this->MysqlGetArray("SELECT *, ROUND( ACOS( SIN( RADIANS( lat ) ) * SIN( 19.0237800 ) + COS( RADIANS( lat ) ) * COS( 50.2648900 ) * COS( RADIANS( lat ) - 50.2648900 ) ) * 6371.01, 2 ) AS distance FROM `database` WHERE act=1 AND cat = '".$this->sqlFiltr($category)."' GROUP by id ORDER by distance DESC LIMIT ".model_settings::m_get_value(34)." ");
  4. }



MUSI BYC TO ZAPYTANIE BEZ INGERENCJI PHP.

Ten post edytował acztery 12.09.2011, 14:19:35
Powód edycji: [wookieb]:
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.07.2025 - 04:25