![]() |
![]() |
![]()
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. |
|
|
![]() |
![]()
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 -------------------- ![]() |
|
|
![]()
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
-------------------- |
|
|
![]()
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:
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? |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 02:09 |