GPS souřadnice českých měst a obcí
Pro zobrazování poloh dopadů meteosond na IRC jsem potřeboval v jednoduchém CSV formátu seznam souřadnic českých měst, ale ukázalo se, že je překvapivě obtížné něco takového získat. Sice existuje tabulka na jednom astronomickém webu, výběr tam zahrnutých obcí je ale docela divný, někde je místo obce jen její část, atd.
Nakonec jsem zvolil postup “udělej si sám”, a to kombinací seznamu na Wikipedii, Google Geocoding API a trochy XPath.
Seznam rozumné podmnožiny měst mohu získat třeba pomocí:
curl 'http://cs.wikipedia.org/w/index.php?title=Seznam_obc%C3%AD_s_roz%C5%A1%C3%AD%C5%99enou_p%C5%AFsobnost%C3%AD&action=edit' | sed -ne 's/^# \[\[\([^]|]*|\)*\([^]]*\)\]\].*/\2/p' | sort
Mám-li zase jméno obce, její souřadnice mohu získat tímto zaklínadlem:
m=Aš; curl -s 'http://maps.googleapis.com/maps/api/geocode/xml?address='"${m// /+},+CZ"'&sensor=false' | xmllint --xpath '//location[lat or lng]//text()' -
(Důležitý trik je to ,CZ, jinak bude Google znát spoustu Kolínů a Aš bude znamenat Americká Samoa. Alternativně si můžete z výsledků vyfiltrovat ty české pomocí XPath //result[address_component/short_name/text()="CZ"]/geometry/location[lat or lng]//text()
.)
Teď už to pro vygenerování jednoduchého CSV stačí spojit dohromady:
curl 'http://cs.wikipedia.org/w/index.php?title=Seznam_obc%C3%AD_s_roz%C5%A1%C3%AD%C5%99enou_p%C5%AFsobnost%C3%AD&action=edit' | sed -ne 's/^# \[\[\([^]|]*|\)*\([^]]*\)\]\].*/\2/p' | sort | while read m; do echo -n $m curl -s 'http://maps.googleapis.com/maps/api/geocode/xml?address='"${m// /+},+CZ"'&sensor=false' | xmllint --xpath '//location[lat or lng]//text()' - | tr -s '\n' ' ' | tr ' ' ',' echo sleep 0.1 done | sed 's/,$//'
Rádi byste hotové CSV?
Bonus: Podobně vygenerované CSV s pražskými částmi (katastrálními územími).
Bonus 2: A ještě CSV s obcemi s přenesenou působností (další velké obce a města)
Zdravím. Zajímavý návod. Bylo by možné získat souřadnice ostatních obcí v čr?
Seznam obcí mám. Zdravím Tomáš
Dobrý den,
mám také seznam měst a potřeboval bych k nim dostat gps souřadnice, bylo by to možné? Nebo prosím o radu. Nejsem nijak programátorsky zdalý, tak nevím co mám dělat s těmi kódy co sem píšete.
Děkuji
Kompletní seznam gps všech měst v csv na https://github.com/33bcdd/souradnice-mest
Miku, jaky je zdroj (zdroje) toho tveho seznamu? Jen pro overeni spolehlivosti dat….
dik
@Michal zdravím, přidal jsem mapu, takže můžeš udělat namátkovou vizuální kontrolu http://33bcdd.github.io/souradnice-mest/#map
zdravím , děkuji za podklady, stáhnul jsem si to, ale nevím proč nezobrazuje se mi správně čeština, jak to napravit._ Děkuji
Proč na to jí složitě, když to jde jednoduše. :-)
Já jsem se obrátil na kartografii Praha s tím že potřebuji GPS souřadnice všech měst ČR a to jejich středu. Po chvilce vyjednávání (zajímalo je hlavně na co to chci – abych s tím asi nekšeftoval) mi je ochotně poslali. Mám tak 996 měst (včetně jejich částí).
Pokud má někdo zájem, rád poskytnu.
ahoj, potřeboval bych souřadnice, mohl bych se s tebou domluvit, pokud je ještě máš? Díky. Karel
@karel
dotaz? mas jeste souradnice? diky karel
Muzu poprposit o ty mesta
@Ruda
Muzu poprosit o ta mesta ?
Seznam z https://github.com/33bcdd/souradnice-mest je rozsáhlý, ale ne úplný. Obsahuje 6253 položek proti cca 9600 katastrálním územím ČR, které lze najít v evidenci CUZK. Věřil jsem tomu, že rozdíl plyne z faktu, že ne každé k.území je současně obcí, ale při detailnějším zkoumání jsem zjistil, že v seznamu se souřadnicemi chybějí rozsáhlé bloky dat s dlouhou řadou reálně existujících obcí, které naopak vede seznam katastrálních území. V informacích k hledaným obcím v aplikaci Mapy na Seznam.cz jsem žádné podobné díry nezaznamenal. Zřejmě někde existuje úplnější seznam souřadnic. Zatím jsem ho ale nevypátral.
Mohu taky poprosit o ty souřadnice měst? Díky Petr
@Vladimír
To číslo odpovídá počtu záznamů obcí, které jsem našel na czso (statistický úřad). Pravděpodobně se tedy skutečně jedná o samostatné obce. Obce které jsou přidružené k městům tam nejspíš chybí.