Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][inne]Miasta w odległości do x km od Miasta
Ryder
post
Post #1





Grupa: Zarejestrowani
Postów: 74
Pomógł: 1
Dołączył: 5.01.2008

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


Witam,

Chciałbym na swojej stronie zaimplementować skrypt wyszukujący miasta w podbliżu podanej miejscowości.
1. W jaki sposób działają takie skrypty, czy potrzebuje wykupić bazę danych miejscowości?
2. Czy znacie gotowe darmowe lub płatne rozwiązania/skrypty?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
thek
post
Post #2





Grupa: Moderatorzy
Postów: 4 362
Pomógł: 714
Dołączył: 12.02.2009
Skąd: Jak się położę tak leżę :D




A nie pomyślałeś, że google używa geolokalizacji? Sprawdzi Twój IP i zapewne dobierze najbliższy Adamów do lokalizacji powiązanej z tym IP (IMG:style_emoticons/default/smile.gif) Inna sprawa, że zdaje się to psu na budę, bo od czego są proxy? Właśnie najlepszym rozwiązaniem jest zasugerowanie wyniku dając możliwe wyniki poprzez zawężenie. Najpierw do województw, a potem ewentualnie powiatów. Jeśli na jakimś etapie będziesz już miał jednoznaczność - odpuszczasz sobie. Ja ogólnie mam mechanizm ciutkę inny. Mam dwie formy odpytania o miejscowość:
1) przez id - tu brak problemu - zawsze albo jest jedno, albo nie ma wcale
2) przez nazwę - z użyciem LIKE '$nazwa%' - czemu tak? Nazwa jest indeksem i takie zdefiniowanie LIKE (z możliwą "rozszerzoną" nazwą za podaną) używa indeksu (jeśli na kolumnie name założyliśmy takowy), czyli jest szybsze. Sprawdź sobie explain gdy masz z i bez indeksu. Bez indeksu - filesort, temporary i where, a z indeksem tyl where. Dwa - po stronie skryptu wychwytuję nazwy będące idealnym trafieniem oraz podobne. Wydzielam je do dwóch osobnych tablic. Jeśli idealne trafienia mam to korzystam z nich i ewentualnie sugeruję userowi uściślenie. Zawsze jednak mogę odwołać sie do drugiej i zaproponować mechanizm "Może chodziło Ci o ..." i podaję inne nazwy, nie będące już dokładnie nią. Przykład? Wpiszę podany przez Ciebie "Adamów" i znajdzie mi takie (właściwie to nawet 4), ale zasugeruje dodatkowo: Adamów Drwalewski, Adamów Rososki, Adamów-Parcel, Adamów-Wieś, Adamówek, Adamówka. Teraz jeśli jest to wyszukiwarka serwisu, mogę te miejscowości ograniczyć do takich, które mają cokolwiek do zaoferowania, czyli są jakoś połaczone z aktywnymi produktami w ofercie serwisu.

Co do powiatów, to ja tylko uzywam ich w przypadku niejednoznaczności i tak zaimplementowany routing, że niejednoznaczność sprowadzam do jednoznaczności. Jeśli ktoś podal tylko nazwę, podsuwam mu z jakiego województwa są wyniki i koniec. Jeśli trafi w pojedynczy, jego szczęście. Jeśli nadal będzie kilka to zasugeruję miejscowość ale oprócz nazwy dopisuje obok nazwę powiatu. Tak więc linki NIGDY nie rozwiną się do formy wojewodztwo_jakieś/powiat_jakiś/miasto_jakieś, ale powiat będzie olany, gdyz od razu rozwinie się do formy wojewodztwo_jakieś/miasto_jakieś,id_miasta_w_bazie i choćby ktoś cudował z parametrami w url, to nigdy nie zadziała ten parametr... Co zabawniejsze, to router mam tak napisany, że nawet uzycie fałszywych danych poprawia url, ponieważ znając id miasta, znam jego nazwę i województwo, a tym samym mogę cały url poprawić do w pełni poprawnej formy. Przykład z tego mojego routera...
/kategoria/miasto_sdfbjfb,1/ przejdzie przez router i wykona 301 na /kategoria/miasto_lepice,1/wojewodztwo_mazowieckie,7
Pozbywasz się z google od razu double content, gdzie różne adresy prowadza do tej samej treści. Nawet jeśli htaccess mi zawali sprawę, to router go poprawi i przekieruje na jedyny poprawny. Już nawet nie mówię, że przy okazji router oprócz samego adresu generuje mi kanoniczne, które mogę wykorzystać w sekcji head. Jest masę zabawy z tym, ale dużo używam cache i całość powinna być dość wydajna.
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 14.10.2025 - 03:45