Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [inne] Wyszukiwanie ogłoszeń wg. miasta (odległości)
Forum PHP.pl > Forum > Przedszkole
wujek2009
Cześć.

Potrzebuje pomysłu w jaki sposób zaprojektować bazę, aby móc wyszukiwać ogłoszenia na podstawie odległości od miejsca zamieszkania.
Załóżmy, że użytkownik wpisał jako miejsce zamieszkania Warszawa i zaznaczył obszar do 30 km. W jaki sposób wyszukać ogłoszenia mając w tabeli kolumnę typu: "town", "postcode" - z wiadomymi wartościami.

Musiałbym pobrać miasta, które są w promieniu 30 km i później w zapytaniu użyć: WHERE town IN ('nazwa_miasta', 'inna') albo WHERE postcode IN ('xxx'); - dodam, że takie ogłoszenia również mogą być spoza granicy naszego kraju.
zamper
1. Musisz mieć dane o pozycji miasta np. X i Y
2. Musisz mieć dane o swojej pozycji
3. Robisz where typu ABS(x2-x1)<30 AND ABS(y2-y1)<30
4. Robisz order by typu ABS(x2-x1)+ABS(y2-y1)
Możesz użyć lepszego warunku, żeby trafniej wyliczyć odległość
lobopol
Zapisuj w bazie szerokość i długość geograficzną i przykładowo szukasz: http://stackoverflow.com/questions/2234204...or-complex-calc
wujek2009
Skąd pobierać informacje o pozycji miasta (latitude, longitude)? W głowie rysuje mi się pomysł, aby budować własną bazę na podstawie Google maps.
Tabela byłaby w stylu:

Kod
# table1
| id | country_id | town | post_code | latitude | longitude


i podczas dodawania ogłoszenia napisać mniej więcej taki algorytm:
  1. $kraj = 'Polska';
  2. $miasto = 'Warszawa';
  3. $kodpocztowy = '00038'; // zapisywać do bazy bez myślników?
  4.  
  5. $query = 'select * from table1 where country_id = $kraj AND town = $miasto AND post_code = $kodpocztowy;
  6.  
  7. if ( !$query )
  8. {
  9. // nie znalazło wyników
  10. // szukamy na podstawie Google maps Api
  11. }
  12.  
  13.  
  14. później insert to tabeli ogłoszeń wg. pobranych danych


Mój tok myślenia jest dobry, czy coś pominąłem? :-)

Odświeżam (o ile można) - chodzi mi o potwierdzenie czy w/w rozwiązanie jest w porządku czy istnieje też inne wyjście?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.