Do kolejnego projektu potrzebna mi była pełna baza miejscowości w Polsce, łącznie ze wsiami, koloniami, przysiółkami, osadami i innymi folwarkami (tak, takie określenie również funkcjonuje :) ). Zdobycie takiej bazy okazało się całkiem proste, gdyż GUS udostępnia dane z TERYTu, czyli Rejestru Podziału Terytorialnego Kraju. Udostępniona baza w formacie XML zawiera pełną listę miejscowości wraz z ich przypisaniem do województwa, powiatu i gminy. Bazę można pobrać pod adresem http://www.stat.gov.pl/broker/access/prefile/listPreFiles.jspa.
Jest jednak mały problem z tą bazą – ze względu na jej wielkość (~40MB, ponad 1 200 000 linii) zaimportowanie jej w PHP z wykorzystaniem parsera XML potrafi zająć nawet kilka godzin. Ponieważ ja to już mam za sobą, więc zapraszam do pobrania pliku w formacie CSV, którego import do bazy danych trwa ledwie kilka sekund. W pliku tym nie ma wszystkich informacji dostępnych w oryginalnym XML – ze względu na moje potrzeby została okrojona do nazwy miejscowości, powiatu i województwa. Zapraszam do pobrania: plik zip (1MB)

Wygląda na to że link w to pliku zip (pod koniec artykułu) nie działa.
Rzeczywiście, przy edycji zgubiła się ścieżka. Naprawiłem :)
Dzięki, oszczędziłeś mi trochę czasu :)
Pozdrawiam!
Niestety przy otwieraniu csv wyskakuje błąd przy wszystkich trzech plikach :(
Zgaduję, że próbujesz je otworzyć w Excelu. To się nie uda – ten program nie czyta tak dużych plików.
Dzięki :) Właśnie tego potrzebowałem.
mam nadzieję, że Twoja baza danych będzie uaktualniana na bieżąco, ponieważ jest to kawał dobrej roboty ;)
Niestety baza jest niekompletna (brakuje miast na prawach powiatu – np brak powiatu warszawskiego, radomskiego łódzkiego itd), posiada również sporo błędów (warszawa występuje 26 razy w różnych województwach), do tego spora redundancja danych.
Powiaty znajdują się w pliku powiaty.csv; miasto na prawach powiatu, np. Radom nazywa się Radom i egzystuje w pliku miasta.csv.
Nie ma w Polsce powiatu warszawskiego.
Warszawę można znaleźć w Polsce w 26 lokalizacjach – nie tylko tam gdzie jest stolica kraju, ale również jako mniejsze miejscowości, wsie i części wsi. Tutaj jednak myślę, że
należało by usunąć jednak z pliku te części wsi – te dane są zbyteczne.
Jednak będę się upierał że baza ma błędy.
Przykład:
“19332″;”Warszawa”;”26″;”8″
Miejscowości warszawa w powiecie pinczowskim nie ma.
Do sprawdzenia na: http://www.stat.gov.pl/broker/access/definitionTree.jspa
Kolejny przykład: “23948″;”Warszawa”;”18″;”2″
18-podkarpacie 02 powiat brzozowski – tu też nie odnajdziemy miejscowosci warszawa.
Do tego powtarzające się wpisy “Warszawa”;”6″;”2″ – jest kilka.
Oczywiście masz rację – nie ma powiatu warszawskiego (uogólniłem) lecz w strukturze powiaty brakuje wpisu Warszawa o id= 65 wskazuje na niego rekord z miast:
ID;Nazwa;Województwo;Powiat
“23921″;”Warszawa”;”14″;”65″
Bez miast na prawach powiatu (w tabeli z powiatami) struktura nie jest kompletna.