Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [inne] Wyszukiwanie ogłoszeń wg. miasta (odległości)
wujek2009
post 5.02.2013, 19:16:48
Post #1





Grupa: Zarejestrowani
Postów: 350
Pomógł: 31
Dołączył: 23.05.2010

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


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.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
zamper
post 5.02.2013, 21:05:21
Post #2





Grupa: Zarejestrowani
Postów: 156
Pomógł: 17
Dołączył: 11.12.2010
Skąd: Częstochowa

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


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ść

Ten post edytował zamper 5.02.2013, 21:06:04


--------------------
GG(22779936)
Go to the top of the page
+Quote Post
lobopol
post 5.02.2013, 21:07:23
Post #3





Grupa: Zarejestrowani
Postów: 1 729
Pomógł: 346
Dołączył: 4.04.2009

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


Zapisuj w bazie szerokość i długość geograficzną i przykładowo szukasz: http://stackoverflow.com/questions/2234204...or-complex-calc


--------------------
Go to the top of the page
+Quote Post
wujek2009
post 7.02.2013, 21:14:44
Post #4





Grupa: Zarejestrowani
Postów: 350
Pomógł: 31
Dołączył: 23.05.2010

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


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?
Go to the top of the page
+Quote Post

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 - 02:09