Baza miejscowości w Polsce, wraz ze współrzędnymi geograficznymi

1

Cześć.
Szukałem już na google, szukałem i tutaj i ogólnie ciężko coś rozsądnego w temacie znaleźć.
Potrzebowałbym bazy miejscowości w Polsce wraz z ich współrzędnymi geograficznymi. Mam tu na myśli wszystkie miejscowości, a przynajmniej jak największą ich ilość. Do tego przydałyby sie współrzędne geograficzne w miarę dokładnie odzwierciedlające rzeczywiste położenie miejscowości na mapie Polski. Znaczy przesunięcie rzędu 2km (bodaj jedna minuta, nie?) jest akceptowalne, ale większe juz raczej nie.
No i oczywiście, żeby było darmowe i w jakimś strawnym formacie, łatwym do sparsowania ;)
Wiem, wiem, mam spore wymagania, ale cóż, taki jeden projekt chcę zrobić z kumplem i przydałoby się nam coś takiego.
stat.gov.pl nie działa (przynajmniej mi, ale myślę że to przypadłość ogólna, jako że wyjątkowy nie jestem to i nie ma po co mnie od stron rządowych odcinać :P ), inne zanlezisko moje w tej rzeczy jest niedokładne. No i szukałem już trochę i na nic ciekawego nie wpadłem.

Ewentualnie jak nie stopnie geograficzne, to może być coś innego, co pozwoli mi rozmieścić te miejscowości na mapie i wyznaczyć przybliżone odległości między miejscowościami (na przykład znaleźć wszystkie miejscowości oddalone o x km od miejscowości Y).

Rzuci ktoś ideą, linkiem albo czymś?

0

Jak nie ma takiej listy - nie sprzwdzalem, to moze najpierw liste nazw i za pomoca googli odczytac polozenia (geocoder).

np wpisujac Polska, Ładza (dosc mala miejscowosc) mapa sie ustawia na srodek a my lapiemy wspolrzedne. Puscic takie cudo w JS i juz jest lista ze wspolrzednymi.

1

@pako1337, weź bazę TERYT ze stron GUSu (to 4 pliki xml). Napisz obpytywajkę w Javie/Cpp lub czymś innym z użyciem GoogleAPI, jak radzi reichel, zapisz do xml i tyle.

0

Tak też chyba zrobię, skoro nikt nie kojarzy gotowej już bazy, jakiej mi potrzeba.
Cóz, projekt miał być w dużej mierze po prostu edukacyjny - żeby zająć czymś wolny czas, a przy okazji może móc to potem do CV czy na rozmowie o pracę wcisnąć :P tak więc troche więcej roboty nie zaszkodzi aż tak bardzo ;)

0
<url> http://www.maxmind.com/app/geolitecity </url>

zawsze można wyłuskać bazę polskich miejscowości. Wszystkich jest ok 224tys

0

Podnosze temat.

Czy ktoś znalazł darmową bazę?
Z tego co mi sie udało znaleźć to tylko http://www.bazamiejscowosci.pl i na hoga.pl tyle, że płatne.

Dzieki!

0

Znalazłem coś takiego ale niecałe 58tyś pozycji i ciężko ściągnąć
http://cybermoon.pl/wiedza/wspolrzedne/wspolrzedne_polskich_miejscowosci_a.html
Też szukam, przyjrzę się temu GUSowi
P.S, nareszcie forum na którym nie trzeba się logować... ile to razy mogłem pomóc ale nie będę zakładał konta dla jednego postu...

0

OOO wygląda na to ze to:
http://cybermoon.pl/wiedza/wspolrzedne/wspolrzedne_polskich_miejscowosci_a.html
to może być to samo co sprzedają na http://www.bazamiejscowosci.pl/
Oj chyba nie, właśnie przekleiłem to badziejstwo do excela i wyszło mi 44563 rekordy a nie jak podaje autor 57785
Nie wiem skąd różnica, raczej nie pominąłem niczego
(Mimo wszystko wolę Ctrl-C Ctrl-V niż przez godzinę klepać skrypt potem jeszcze 30min go debuggować żeby w minutę wczytać... Przy operacjach jednorazowych nie warto pisać skryptów. Już się dawno o tym przekonałem. Czasem metody "na piechotę" są szybsze)

Teraz jeszcze fajnie by było połączyć to z listą kodów pocztowych z http://www.poczta-polska.pl/spispna/spispna.pdf
Ale to się chyba nie uda, powyższa lista posiada miejscowości o tych samych nazwach i w tych samych województwach... np Huta

Chyba trzeba zacząć od początku albo automatem połączyć te jednoznaczne a powtórki opracować ręcznie....
Kupa roboty ale do zrobienia.

Tu jest ten TERYT z GUS: http://www.stat.gov.pl/broker/access/prefile/listPreFiles.jspa
Przyjrzę mu się bo to najbardziej wiarygodne źródło. Musze to jakoś wczytać do Openoffica... XML...
To chyba mi pomoże http://www.cobynsoft.com/products/freeware/cobynsofts-data-viewer/
Dowiem się po restarcie... Znowu jakiś NET mi się doinstalował...

0

Daaawno temu parsowałem tego TERYT-a i wrzuciłem do ms-accessa, zapodaję link (zaktualizowana):
http://open.ge.tt/1/files/33xVB5E/0/blob?noinc=1&download

0

Tak z ciekawości. Ma ktoś może jakąś bazę z pozycjami GPS ulic?

1

Wykaz wszystkich urzędowych nazw włączając w to osiedla, kolonie, dzielnice, osady leśne, przysiółki itp. -> http://ksng.gugik.gov.pl/urzedowe_nazwy_miejscowosci.php
Wystarczy potem przeparsować dane OSM pod kątem nodes miejscowości -> http://download.geofabrik.de/europe/poland.html
Ewentualnie można użyć danych z PRG ( obręby administracyjne, shapefile ) -> http://www.codgik.gov.pl/index.php/darmowe-dane/prg.html

IMHO trzy stówy za takie coś to jakiś kiepski żart...

0

@Robert-gosc
baza
http://cybermoon.pl/wiedza/wsp[...]e_polskich_miejscowosci_a.html
jest niekompletna bo brak całego łódzkiego

0
pako1337 napisał(a):

Cześć.
Szukałem już na google, szukałem i tutaj i ogólnie ciężko coś rozsądnego w temacie znaleźć.
Potrzebowałbym bazy miejscowości w Polsce wraz z ich współrzędnymi geograficznymi. Mam tu na myśli wszystkie miejscowości, a przynajmniej jak największą ich ilość. Do tego przydałyby sie współrzędne geograficzne w miarę dokładnie odzwierciedlające rzeczywiste położenie miejscowości na mapie Polski. Znaczy przesunięcie rzędu 2km (bodaj jedna minuta, nie?) jest akceptowalne, ale większe juz raczej nie.
No i oczywiście, żeby było darmowe i w jakimś strawnym formacie, łatwym do sparsowania ;)
Wiem, wiem, mam spore wymagania, ale cóż, taki jeden projekt chcę zrobić z kumplem i przydałoby się nam coś takiego.
stat.gov.pl nie działa (przynajmniej mi, ale myślę że to przypadłość ogólna, jako że wyjątkowy nie jestem to i nie ma po co mnie od stron rządowych odcinać :P ), inne zanlezisko moje w tej rzeczy jest niedokładne. No i szukałem już trochę i na nic ciekawego nie wpadłem.

Ewentualnie jak nie stopnie geograficzne, to może być coś innego, co pozwoli mi rozmieścić te miejscowości na mapie i wyznaczyć przybliżone odległości między miejscowościami (na przykład znaleźć wszystkie miejscowości oddalone o x km od miejscowości Y).

Rzuci ktoś ideą, linkiem albo czymś?

Mam starą bazę miejscowości w Polsce... z 20 tysięcy sztuk.

dane są w pliku binarnym i typu:
struct struct21
{
BYTE len;
char name[15]; // razem z tym len jakby string[15] z paskala...
int x, y; // współrzędne na mapie
BYTE siz,ccc; // wielkość miasta, no i coś tam jeszcze... nie pamiętam
};

Mogę to całe wrzucić...
rozmiar pliku 165900 Bajtów, co daje 165900 / 21 = 7900 miast;

oj, szkoda, bo teraz widzę że to są tylko większe miejscowości - miasta powyżej 5 tyś. ludności chyba.
Pamiętam że było tam około 18 tyś. pozycji, ale wywaliłem te mniejsze - wioski w zasadzie.

0
hipka napisał(a):

@Robert-gosc
baza
http://cybermoon.pl/wiedza/wsp[...]e_polskich_miejscowosci_a.html
jest niekompletna bo brak całego łódzkiego

Jest łódzkie, tyle że wykazywane jako kujawsko-pomorskie :D. Biorąc pod uwagę że prawie całe kujawsko pomorskie jest w całości powyżej pewnej szerokości geograficznej, a łódzkie poniżej jej, można pokusić się o poprawienie przypisania, a te miejscowości, które leżą na wspólnych szerokościach zweryfikować ręcznie.

0

Cześć !

A jak zmapować dane z geofabrik na SIMC/ TERC?

W opisie http://download.geofabrik.de/osm-data-in-gis-formats-free.pdf jest też informacja, że są tam miejsca z liczbą mieszkańców, ale nie mogłem znaleźć żadnego :(

Nie do końca rozumiem to, co widzę, np.:
<node id="26083949" lat="52.1755835" lon="20.9979726" version="3" timestamp="2014-02-05T01:47:35Z" changeset="20384192" uid="52087" user="kocio" />
<node id="26083950" lat="52.1750017" lon="21.000795" version="4" timestamp="2014-02-05T01:47:35Z" changeset="20384192" uid="52087" user="kocio" />
<node id="26083951" lat="52.1750171" lon="21.0021506" version="7" timestamp="2016-05-10T15:56:59Z" changeset="39221510" uid="3630009" user="Deuar">
<tag k="highway" v="traffic_signals" />
</node>

lat to pewnie latitude, potem longitude, timestamp - to czas modyfikacji.

Paweł

tajny_agent napisał(a):

Wykaz wszystkich urzędowych nazw włączając w to osiedla, kolonie, dzielnice, osady leśne, przysiółki itp. -> http://ksng.gugik.gov.pl/urzedowe_nazwy_miejscowosci.php
Wystarczy potem przeparsować dane OSM pod kątem nodes miejscowości -> http://download.geofabrik.de/europe/poland.html
Ewentualnie można użyć danych z PRG ( obręby administracyjne, shapefile ) -> http://www.codgik.gov.pl/index.php/darmowe-dane/prg.html

IMHO trzy stówy za takie coś to jakiś kiepski żart...

0

Bezpłatnej listy nie mam ale ostatnio u mnie w pracy kumpel korzystał z tej listy miejscowości w Polsce. Masz tam długość i szerokość geograficzną miejscowości. Nie wiem jak bardzo jest szczegółowa bo to nie ja pracowałem przy tym projekcie. Widzę że można pobrać darmowy sampel tej bazy to ogarniesz czy o to Ci chodzi.

0

Tysiąc złotych za taką bazę danych????
Po tym co dzisiaj zobaczyłem w internetach, siadam, zrobię tą bazę i będę sprzedawać po 100zł.

1

Obecnie takie dane są dostępne jako dane publiczne na:
https://www.danepubliczne.gov.pl/dataset/prng#
Państwowy Rejestr Nazw Geograficznych - miejscowości

1
edc22 napisał(a):

Obecnie takie dane są dostępne jako dane publiczne na:
https://www.danepubliczne.gov.pl/dataset/prng#
Państwowy Rejestr Nazw Geograficznych - miejscowości

Państwowy Rejestr Nazw Geograficznych (PRNG)
https://www.geoportal.gov.pl/dane/panstwowy-rejestr-nazw-geograficznych
To można łączyć z SIMC.
coord_simc_merge.zip

Opis:
Po złączeniu danych z PRNG i SIMC mamy 1318 brakujących rekordów z 102 779 wszystkich. Parowanie po symbolu (id) miejscowości z SIMC. Niestety niektóre miejsca mają inny identyfikator w starszych wersjach SIMC z których korzystano przy opracowaniu PRNG (niektóre rekordy 82 rok, inne 2012, z tego co widać w zbiorze danych) oraz nieco inne nazwy. Np. dzielnica Warszawy Wesoła ma id gminy 1 w starym SIMC/PRNG a w nowym każda dzielnica Warszawy ma własne id gminy. Albo Praga południe jest pisana Praga-południe. Pewnie trzeba jakieś API, żeby to uzupełnić - chociaż te dane często są w PRNG tylko mają inne nazwy i id, to trochę kłopot i nie znalazłem żadnej uniwersalnej zależności żeby napisać skrypt uzupełniający.

Dodatkowo jest z 1000 miejscowości o takich samych nazwach, id_woj, id_powiatu, id_gminy, rodzaju gminy i rodzaju miejscowości ale innym id miejscowości i nieco różnych współrzędnych geograficznych. Np. 2 miejscowości Jeziora w Kujawsko-Pomorskim, są obok siebie i w aktualnym SIMC obydwie są uznane za Osady leśne a w PRNG jedna jest Osadą a druga Osadą leśną (tą wersję z PRNG obecnie wyświetla Google).

kolumny:
id_miejsowości, id_miejscowości nadrzędnej, nazwa, id_woj, id_pow, id_gmi, id_rodzaju_gminy, id_rodzaju_miejscowości, (tutaj dodatkowe dwa pola z PRNG określające miejsce/typ mogące się przydać w przypadkach jak opisany wyżej "Jeziora w Kujawsko-Pomorskim"), współrzędne goeograficzne.
Tu zrzut ekranu z jakiejś strony, już nie pamiętam adresu, która dobrze opisuje id rodzajowe:
desc_simc.png

Są 3 pliki, główny jak opisany, w miejsce brakujących wsp. jest "", drugi w którym są tylko brakujące rekordy i trzeci będącym 2 + wrzucone nazwy obok id dla ułatwienia wyszukania brakujących danych.

edit. Można zrobić to co robi np. Google dla niektórych z miejscowości - wyświetlać lokalizację miejscowości nadrzędnej. Po takim parowaniu + parowaniu nieznalezionych rekordów (niemających miejs. nadrzędnej określonej w bazie) po nazwie miejsc. oraz id woj.,pow., i gminy można uzyskać ok. 78 brakujących rekordów pomijając te z rodzajem dzielnica oraz delegatura aby ich nie rozmywać do Miasta. Po uzupełnieniu ręczym tych brakujących rekordów (czasami też miejs. nadrzędnymi/ wsp. gminy z braku danych w internecie) mamy 0 braków. Trochę nie ideał jakościowo ale cóż:
simc+coords.zip

*Zapis współrzędnych jest w stopniach, minutach i sekundach, przy czym niektóre wsp. mają te liczby z rozwinięciem po kropce wynikające z konwersji i braku zaokrąglania.

GUS - Bank danych lokalnych, LUDNOŚĆ - STAN LUDNOŚCI -

To można łączyć z TERYT.
TERYT + ludność bez podziału na płeć, posortowane po ludnośsci.
teryt+ludność.zip

Kolumny:
id_woj, id_pow, id_gmi, id_rodzaju (zdj.), nazwa, ludność.
Jak rekord nie ma id_woj, id_pow, id_gmi, id_rodzaju to jest to Polska
jak rekord nie ma id_pow, id_gmi, id_rodzaju to jest to województwo
itd.
desc_rodz_teryt.png

*Pliki z TERYT i SIMC wzięte najnowsze w dniu dodania postu - 30 grudnia 2021. No i to z PRNG też wzięte to co jest bo nie ma żadnych wersji po dacie.

0

@pmad: Co miałeś na celu łącząc SIMC i PRNG? Z tego co widzę PRNG zawiera już listę miejscowości z przypisanymi współrzędnymi geograficznymi.

0
jbourne napisał(a):

@pmad: Co miałeś na celu łącząc SIMC i PRNG? Z tego co widzę PRNG zawiera już listę miejscowości z przypisanymi współrzędnymi geograficznymi.

Już w 100% nie pamiętam ale chyba to że PRNG miało niepełne i dużo starsze dane (ogólnie PRNG to jest zbitka danych z różnych źródeł w tym część z SIMC z 201x i z 198x roku, czy coś w tym stylu). Również opisy typów miejscowości różniły się między SIMC/PRNG i TERYT, zdecydowanie były niespójności w identyfikatorach oraz w sposobie klasyfikacji miejscowości. (Jak już do czegoś równać to do schludniejszej i aktualizowanej bazy danych czyli SIMC) Poza tym model relacyjny miejscowości jest zepsuty w PRNG, tzn. naprawiłem model w ten sposób, że nadawałem każdej miejscowości nowe id nadrzędne i listę id miejsc. podrzędnych tak aby dla każdej miejscowości można było znaleźć miejsc. lub obszary nadrzędne i podrzędne (tego już nie uplodowałem jak pamiętam). Też łączyłem SIMC z PRNG i TERYT aby mieć pełne łańcuchy typu miejscowość1 -> miejscowość2 -> gmina -> powiat -> województwo -> Polska z wykorzystaniem wyżej wymienionych danych relacyjnych. No i to wszystko sortowałem po liczbie ludności dla każdej miejscowości czy terytorium a rezultatem był zbiór danych idealnie przygotowany pod funkcję typu wyszukaj miejscowość z podpowiedziami.

Napisałem też bardzo rozbudowany moduł relacyjny oraz interpretacyjny służący do wyszukiwania miejscowości dzięki takiemu zbiorowi w C# ale projekt na tą chwilę stanął po mniej więcej pół roku pracy bo chciałem wszystko idealnie dopracować i mi sił/środków nie starczyło aby ukończyć portal.

BTW. Jakby ktoś z Was chciał dodać do swoich arkuszy kody pocztowe to polecam unikać zbioru oferowanego przez pocztę polską na płytce za ok. 50zł. Po zakupie dowiedziałem się, że nie pozwalają na wykorzystywanie i przechowywanie w bazach danych i dodatkowo mimo opłaty i 'rozwoju' oferowanych danych z ich strony - po otworzeniu zdecydowanie nie było zachwytu odnośnie łatwej do wykorzystania organizacji danych (może działanie celowe, chociaż wątpię).

0
pmad napisał(a):
jbourne napisał(a):

@pmad: Co miałeś na celu łącząc SIMC i PRNG? Z tego co widzę PRNG zawiera już listę miejscowości z przypisanymi współrzędnymi geograficznymi.

Już w 100% nie pamiętam ale chyba to że PRNG miało niepełne i dużo starsze dane (ogólnie PRNG to jest zbitka danych z różnych źródeł w tym część z SIMC z 201x i z 198x roku, czy coś w tym stylu). Również opisy typów miejscowości różniły się między SIMC/PRNG i TERYT, zdecydowanie były niespójności w identyfikatorach oraz w sposobie klasyfikacji miejscowości. (Jak już do czegoś równać to do schludniejszej i aktualizowanej bazy danych czyli SIMC) Poza tym model relacyjny miejscowości jest zepsuty w PRNG, tzn. naprawiłem model w ten sposób, że nadawałem każdej miejscowości nowe id nadrzędne i listę id miejsc. podrzędnych tak aby dla każdej miejscowości można było znaleźć miejsc. lub obszary nadrzędne i podrzędne (tego już nie uplodowałem jak pamiętam). Też łączyłem SIMC z PRNG i TERYT aby mieć pełne łańcuchy typu miejscowość1 -> miejscowość2 -> gmina -> powiat -> województwo -> Polska z wykorzystaniem wyżej wymienionych danych relacyjnych. No i to wszystko sortowałem po liczbie ludności dla każdej miejscowości czy terytorium a rezultatem był zbiór danych idealnie przygotowany pod funkcję typu wyszukaj miejscowość z podpowiedziami.

Napisałem też bardzo rozbudowany moduł relacyjny oraz interpretacyjny służący do wyszukiwania miejscowości dzięki takiemu zbiorowi w C# ale projekt na tą chwilę stanął po mniej więcej pół roku pracy bo chciałem wszystko idealnie dopracować i mi sił/środków nie starczyło aby ukończyć portal.

BTW. Jakby ktoś z Was chciał dodać do swoich arkuszy kody pocztowe to polecam unikać zbioru oferowanego przez pocztę polską na płytce za ok. 50zł. Po zakupie dowiedziałem się, że nie pozwalają na wykorzystywanie i przechowywanie w bazach danych i dodatkowo mimo opłaty i 'rozwoju' oferowanych danych z ich strony - po otworzeniu zdecydowanie nie było zachwytu odnośnie łatwej do wykorzystania organizacji danych (może działanie celowe, chociaż wątpię).

Rozumiem. W temacie SIMC/TERC to też na początku połączyłem dane z obu zbiorów, żeby uzyskać miasto -> województwo (wystarczyło przefiltrować rekordy z SIMC z kolumną RM = '96' i połączyć wójewództwami z TERC według kolumn WOJ, POW, GMI) ale później doszła jeszcze potrzeba przypisania współrzędnych geograficznych do każdego z miast ale na chwilę obecnie nie widzę takich danych udostępnianych z państwowych źródeł oprócz PRNG.

Co do samego PRNG co jak wstępnie zacząłem przeglądać format danych to wygląda na to, że format jest dokładnie taki jaki mnie interesuje tj. unikalny identyfikator miasta, nazwa, województwo i współrzędne. Mimo tego co napisałeś, że dane mogą być starsze niż te z SIMC/TERC, to wygląda na to, że na moje potrzeby takie dane wystarczą, wrzucę je tylko do bazy relacyjnej oddzielnie jako miasta i województwa. Nawet jeśli dane są lekko nieaktualne to jak wyjdzie zaktualizowana wersja to nie będzie potrzeby tego dodatkowo transformować, zaktualizuje tylko dane w db.

0
jbourne napisał(a):
pmad napisał(a):
jbourne napisał(a): ...

Wiadomo, dostosuj zbiór danych pod swoje potrzeby. Co do łączenia SIMC z PRNG to chyba wszystkie lub wszystkie rekordy dało się połączyć po id, tylko trzeba było znaleźć odpowiednią kolumnę wśród tych ~33 kolumn z PRNG (pamiętam, że nie były to pierwsze kolumny tylko jakaś kolumna w stylu "id systemu zewnętrznego" - bo raczej dla wszystkich rekordów z PRNG "system zewnętrzny" to była jedna ze starszych wersji SIMC). Więc znalezienie wsp. dla miast jest zdecydowanie wykonalne i stosunkowo łatwe jak już się znajdzie właściwą kolumnę.

Ogólnie polecam wziąć ten zbiór (PRNG), wyrzucić wszystkie zbędne kolumny i zrobić merga jakimś skryptem, nawet javascript da radę (ja na szybko pisałem te skrypty pod merge w javascripcie i trochę to mieliło ale oczywiście było ok.)

Co do tej zaktualizowanej wersji PRNG to osobiście bym nie liczył skoro część rekordów jest z SIMC mających prawie 40 lat - ale kto wie, może się za to wezmą.

No i przypomniało mi się, że PRNG raczej miało sporo więcej rekordów (w tysiącach) wobec SIMC czy nawet SIMC+TERYT. Te zmiany klasyfikacji terytorialnej naprawdę mogły być znaczące od tamtych lat skoro jest taka różnica. Liczby rekordów z pamięci to ok. 120 tyś w PRNG i ~104 tyś w SIMC+TERYT, ale trzeba by to sprawdzić.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.