Home > linux > GPS souřadnice českých měst a obcí

GPS souřadnice českých měst a obcí

February 1st, 2014 Leave a comment Go to comments

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)

Categories: linux Tags: , , , , ,
  1. tomas
    April 10th, 2014 at 13:18 | #1

    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áš

  2. Michal Dvořák
    July 2nd, 2014 at 08:45 | #2

    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

  3. Mike
    November 3rd, 2014 at 20:06 | #3

    Kompletní seznam gps všech měst v csv na https://github.com/33bcdd/souradnice-mest

  4. November 9th, 2014 at 23:47 | #4

    Miku, jaky je zdroj (zdroje) toho tveho seznamu? Jen pro overeni spolehlivosti dat….

    dik

  5. 33bcdd
    November 15th, 2014 at 13:58 | #5

    @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

  6. pedros-ov
    June 30th, 2015 at 09:54 | #6

    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

  7. Ruda
    September 17th, 2015 at 09:42 | #7

    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.

  8. February 29th, 2016 at 17:24 | #8

    ahoj, potřeboval bych souřadnice, mohl bych se s tebou domluvit, pokud je ještě máš? Díky. Karel

    Ruda :
    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.

  9. February 29th, 2016 at 17:26 | #9

    @karel

    dotaz? mas jeste souradnice? diky karel

  10. Pavel Sodomka
    March 28th, 2016 at 00:40 | #10

    Muzu poprposit o ty mesta

  11. Pavel Sodomka
    March 28th, 2016 at 00:41 | #11

    @Ruda

    Muzu poprosit o ta mesta ?

  12. Vladimír
    April 16th, 2016 at 08:41 | #12

    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.

  13. Petr
    February 22nd, 2017 at 22:42 | #13

    Mohu taky poprosit o ty souřadnice měst? Díky Petr

  14. Vojta
    January 24th, 2018 at 17:03 | #14

    @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í.

  1. No trackbacks yet.


6 − one =