![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 6.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Pisze stronę i jest mi potrzeby podział polski na województwa, powiaty, gminy , miejscowości i dzielnice. Znalazłem w necie takie coś, ale brakuje tam podziału na dzielnice. Na php się znam tak sobie, ale nie na js i dla tego mam do was prośbę. Umiał by mi ktoś wytłumaczyć jak to zrobić, albo pokazać na przykładzie? Gotowiec znajduje się pod linkiem: http://www.polip.com/download/wiocha.tgz Z góry bardzo dziękuje za każdą pomoc. |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Opiekunowie Postów: 3 855 Pomógł: 317 Dołączył: 4.01.2005 Skąd: że ![]() |
Musisz się spytać Bolesława Krzywoustego o podział na dzielnice
![]() A tak serio? Jakie dzielnice? Może o krainy geograficzne Ci chodzi? -------------------- Jak poprawnie zadać pytanie | Jak poprawnie zatytułować wątek
Najczęstsze błędy | Błędy E_NOTICE | PHP FAQ | FAQ PHPedia | SQL-Injection | Logowanie i sesje | Hashowanie haseł | Server - od czego zacząć ? | Manual PHP Alternatywne Forum dla Ekspertów Nie pomagam na PW, nie mam GG |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 6.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Każde większe miasto dzieli się na dzielnice. Teraz jest tak że gdy wybierze się jakąś gminę pojawia jeę podział na wsi z danej gminy. Chciał bym jeszcze dorobić taki podział dla miast. Tylko nie na wsi, a na dzielnice miasta.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Jesli nie boisz się tego robić samodzielnie, to ze strony GUS zaciągnij sobie bazę TERYT i obrób. Masz tam pliki XML z aktualnym podziałem terytorialnym kraju na miasta, wsi, dzielnice, przysiółki, kolonie i inne takie. A chyba o to Ci chodzi. Ogólnie wygląda to tak, że każdy rekord ma indeks wskazujący między innymi na na jednostkę terytorialną do której należy (województwo, powiat) i typ (miasto, osada). Jest to dość duże, ale są w necie przykłady skryptów jak to przerzucić do bazy MySQL w miarę szybko. Wystarczy pogooglać.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 6.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Moim zdaniem będzie to bardzo obciążało bazę danych.
Co nie? A znasz może jakąś dobrą stronę gdzie jest to opisane jak najlepiej to podzielić? |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
baza relacyjna średnio nadaje się do przechowywania danych hierarchicznych.
![]() |
|
|
![]()
Post
#7
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
AKurat podział terytorialny trudny nie jest do implementacji w bazie. W zasadzie można bez problemu to przerobić do postaci relacyjnej.A to, że będzie tam głównie 1:n to tylko szczegół
![]() -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 6.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Znalazłem takie coś, ale niestety nie działa :/
http://rafrom.rotmanka.pl/?p=398 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Działać zapewne działa, ale te pliki są po prostu dość czasochłonne w obróbce. Konwersja z XML, przetwarzanie, dodawanie do bazy (zapewne rekord po rekordzie, a nie pakietami + czasochłonna aktualizacja indeksów za każdym razem), to wszystko trochę trwa. Znacznie prościej wykorzystać gotowy dump bazy.
-------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Możnaby trzymać dokument XML i do bazy (user_profile->region) zapisywać tylko path (województwo/gmina/powiat/miasto/dzielica/ulica/piwnica).
Troszkę nadmiarowo ale za to bardzo łatwe przy przetwarzaniu do prezentacji. Ten post edytował wNogachSpisz 28.11.2012, 13:19:27 |
|
|
![]()
Post
#11
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Zważywszy, że relacja ulica<->miasto czy ulica<->dzielnica to już relacja "wiele do wielu" - podziękuję. Redundancja danych za duża. Poza tym przeszukiwanie w poszukiwaniu określonej rzeczy też się mi nie uśmiecha... Zrobiłbyś regexpa w bazie, xpatha w xml czy może kombinował z mieszanką obu?
![]() -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 7 Pomógł: 0 Dołączył: 6.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Już uruchomiłem te skrypty z tej strony działają.
Ale teraz zastanawiam się jak to podzielić. Chciał bym zrobić taką bazę do przeglądania tak jak na tej stronie: http://www.stat.gov.pl/broker/access/definitionTree.jspa Tylko dodatkowo żeby była możliwość wybrania gdzie mieszkam. Wszystko by było fajnie jak by nie takie coś np. Kod <row> <col name="WOJ">24</col> <col name="POW">11</col> <col name="GMI">05</col> <col name="RODZ">3</col> <col name="NAZWA">Kuźnia Raciborska</col> <col name="NAZDOD">gmina miejsko-wiejska</col> <col name="STAN_NA">2012-05-09</col> </row> <row> <col name="WOJ">24</col> <col name="POW">11</col> <col name="GMI">05</col> <col name="RODZ">4</col> <col name="NAZWA">Kuźnia Raciborska</col> <col name="NAZDOD">miasto</col> <col name="STAN_NA">2012-05-09</col> </row> <row> <col name="WOJ">24</col> <col name="POW">11</col> <col name="GMI">05</col> <col name="RODZ">5</col> <col name="NAZWA">Kuźnia Raciborska</col> <col name="NAZDOD">obszar wiejski</col> <col name="STAN_NA">2012-05-09</col> </row> Napisałem taki skrypt php, a dokładnie edytowałem gotowca, ale jeszcze coś nie działa. Powinien działać tak że jak jest miejscowość co ma gminę miejską i gminę wiejską to wpisuje do bazy tylko tą pierwszą. A jak narazie działa tak że wszystko wpisuje :/
Ten post edytował ShadoV 29.11.2012, 19:34:15 |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Zważywszy, że relacja ulica<->miasto czy ulica<->dzielnica to już relacja "wiele do wielu" - podziękuję. Nie rozumiem, XML między innym adresuje ten problem. Redundancja danych za duża. To oczywiście zależy ile będzie wpisów z adresemi, jeśli mniej niż miliard, to śmiało można w to iść. Poza tym przeszukiwanie w poszukiwaniu określonej rzeczy też się mi nie uśmiecha... Zrobiłbyś regexpa w bazie, xpatha w xml czy może kombinował z mieszanką obu? ![]() Po co, wystarczy zaindeksować. Adresu i tak się szuka od lewej do prawej. Jeśli chcesz wszystkie wpisy z danej ulicy, to przeszukujesz like: "państwo/miasto/dzielica/ulica/%" Zwróć uwagę, że zapisów żadnych nie będzie, za to ilość przeszukiwań, niekoniecznie po pełnej ścieżce od korzenia - . Do korzenia nie - przeszukujesz like z kotwicą z lewej strony. Jakie to ma znaczenie przy full-text index? Ostatecznie, wrócisz za 2 lata jak system zacznie zarabiać pieniądze i to zoptymalizujesz.. Nie ma sensu się bawić w dłubanine, trzeba trzaskać appki a nie marnować czas na pierdoły ![]() Ten post edytował wNogachSpisz 4.12.2012, 14:28:58 |
|
|
![]()
Post
#14
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
XPathy na dużych plikach XML do demonów szybkości nie należą. Zrobić w nich zaś sensowny odpowiednik full-text-searcha to już zupełnie zajedziesz maszynkę. Innymi słowy - niby można - tylko czy jest to dobre i sensowne podejście?
Iść zawsze można, nikt nikomu nie broni. Problemem jest jednak faktyczna wydajność w ujęciu ogólnym. Wyszukiwanie adresu jest bowiem tylko częścią zazwyczaj szerszego zapytania. W takim wypadku zaczynają się kombinacje z optymalizacjami już, bo inaczej się po prostu nie da tego w rozsądny (o możliwie niskim czasie przeszukiwania) sposób zrobić. A zwróciłeś uwagę, że najczęściej ulica to tylko jedna składowa zapytania? Szukasz po prostu "Kwiatowa 10" czy "Pcim Dolny, Kwiatowa 10"? Jak z tego złapiesz wzorzec dla LIKE? A może złapiemy regexp w bazie? W tym momencie szlag trafia cudowne indeksy. Regexp i Like wszak z indeksu korzystają tylko gdy mają wspomniane przez Ciebie zakotwiczenie z lewej. Innymi słowy: LIKE 'państwo/%' indeks chwyci, ale już LIKE '%słowo%' niestety z indeksu nie korzysta. A przecież trzeba doprowadzić do formy, gdzie mamy wyszukiwane pathy nie z jednym, ale dwoma lub więcej miejscami podanymi jako parametry wyszukiwania. Tu i tak jest w miarę jeszcze statycznie, bo adresy wszak aż tak często się nie zmieniają, a i rozrost miejscowości aż taki szybki nie jest. Co zaś do "trzaskania appek", to akurat w pracy mam moment, gdy siedzimy z zespołem nad wersją 1.0 aplikacji obecnie tworzonej (nazwijmy ją 2.0) No i mamy na tapecie integrację "wsobną", czyli wchłonięcie części funkcjonalności 1.0 do obecnie rozwijanej, przy jednoczesnym nie tykaniu wersji 1.0, bo leży na produkcji ![]() Dlatego też IMHO czasem warto poświęcić chwilkę i od początku zaprojektować coś z głową, niż po miesiącu czy dwóch przeklinać nietypową implementację, nie zawsze do końca przemyślanego podejścia. Ilość wulgaryzmów wyrażanych wszem i wobec na pewno będzie mniejsza ![]() Tutaj problem na jaki napotkał autor nie jest duży. Prawda jest taka, że podany przykład nie jest problemem tak naprawdę. Nie jest bowiem konieczne wrzucanie całego Terytu ![]() Tu właśnie zahaczamy o najważniejsze - przemyślenie aplikacji, jej funkcjonalności i działania. I właśnie to powinien autor tematu przemyśleć zanim zacznie pisać skrypty importujące dane z xml. -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 1 233 Pomógł: 87 Dołączył: 6.03.2009 Ostrzeżenie: (40%) ![]() ![]() |
Nie no, jeśli chcesz przeszukiwać znająć tylko ulicę, bez miasta, to zapisywanie całych pathy odpada.
Tylko pytanie czy projekt zakłada takie przezukiwanie. |
|
|
![]()
Post
#16
|
|
![]() Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Właśnie dlatego podniosłem w swoim ostatnim poście kilka drobiazgów, by autor się zastanowił nad tym czego tak naprawdę chce i przemyślał wymagane funkcjonalności. Na podstawie tego zdecydował o strukturze bazy i relacjach. A dopiero na końcu zabrał się za import,.bo wtedy będzie już wiedział co chce, jak ma to wyglądać i jak będzie między sobą powiązane
![]() -------------------- Najpierw był manual... Jeśli tam nie zawarto słów mądrości to zapytaj wszechwiedzącego Google zadając mu własciwe pytania. A jeśli i on milczy to Twój problem nie istnieje :D
|
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 1 Pomógł: 0 Dołączył: 15.01.2014 Ostrzeżenie: (0%) ![]() ![]() |
Już uruchomiłem te skrypty z tej strony działają. Mam ten sam problem że nie mogę odpalić tego skryptu ze strony http://rafrom.rotmanka.pl/?p=398 Mógł byś napisać co zrobiłeś że zaczeło ci to działać ![]() |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.08.2025 - 14:33 |