cesko-digital / obce

Strojově čitelný seznam všech českých obcí se základními metadaty

Home Page:https://data.cesko.digital/obce/1/obce.json

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Přidat okres

zoul opened this issue · comments

Pro rozlišení obcí se stejným názvem (například Nová Ves je v datech 14✕) by se nám velmi hodil okres. (Kraj je pro rozlišení nedostatečný.) Dá se nějak odvodit z toho, co už máme, nebo kde ho vezmeme? (Wikidata? Viz #28.)

Okres se da vytahnout pres wikidata nejak takto:

SELECT DISTINCT (REPLACE(STR(?lua), "CZ", "") as ?kodObce) ?ico ?population ?area ?localArea ?firstRecord ?CoA ?flag ?website ?district (?item as ?wikiLink) WHERE {
  SERVICE wikibase:label {
    bd:serviceParam wikibase:language "cs".
    ?website  rdfs:label ?websiteLabel.
  }
  #{ ?czechMunicipality wdt:P31 wd:Q5153359 . }
  OPTIONAL {
    # Select Municipalites with propper RÚIAN
    { ?item wdt:P31 wd:Q5153359; wdt:P7606 ?lua;  . }  
    UNION
    # as some of them don't have it, select Municipalities with Czech LUA (NUTS4)
    # !!! beware that in some cases data marked as LUA are districts
    #  => select only LUA with length greater then RUIAN ("CZxxxxxx")
    { ?item wdt:P31 wd:Q5153359; wdt:P782 ?lua . FILTER (STRLEN(STR(?lua)) > 6) }
  }
  # Select Municipalities in Czech republic
  OPTIONAL { ?item wdt:P4156 ?ico . }
  OPTIONAL { ?item wdt:P1082 ?population . }
  OPTIONAL { ?item wdt:P2046 ?area . }
  OPTIONAL { ?item wdt:P131 ?district . } # tady je okres
}
#FILTER ( ?lua = 599100 || ?lua = "CZ599140" ) #Find specific result
#OFFSET 10000
LIMIT 10000

Super. Nezkusil bys to projet pro celý dataset, abysme měli představu, jestli je kombinace název obce + okres skutečně unikátní?

Nemá smysl jít přímo po kódech obcí (možná na separátní issue)? Z toho budou přímé vazby na kraje, atd. Navíc je to oficiální výstup csoz, wikidata jsou až sekundární zdroj (pro start tu:
https://apl.czso.cz/iSMS/cisdet.jsp?kodcis=43)

Nemá smysl jít přímo po kódech obcí (možná na separátní issue)? Z toho budou přímé vazby na kraje, atd. Navíc je to oficiální výstup csoz, wikidata jsou až sekundární zdroj (pro start tu: https://apl.czso.cz/iSMS/cisdet.jsp?kodcis=43)

? Něco jako:

const CZSO_URL = "https://apl.czso.cz/iSMS/cisexp.jsp";

const input_helper = (name, value) => {
    const hiddenField = document.createElement('input');
    hiddenField.type = 'hidden';
    hiddenField.name = name;
    hiddenField.value = value;
    hiddenField.checked = true;
    return hiddenField;
};

const request_info = (id) => {
    const form = document.createElement('form');
    form.action = CZSO_URL;

    form.appendChild(input_helper("kodcis", `${id}`));
    // CONTEXT:Ciselnik
    form.appendChild(input_helper("typdat", "0")); 
    // DATE:dd.mm.yyyy
    form.appendChild(input_helper("datpohl", "02.10.2021"));
    // LANG:CS
    form.appendChild(input_helper("cisjaz", "203"));
    // FORMAT:XML
    form.appendChild(input_helper("format", "0")); 
  
    document.body.appendChild(form);
    form.submit();
};

// ...
request_info(43);

jj, ale spíš jsem to myslel jako reakci na původní problém. Jakože mi přijde zbytečné duplikovat státní open data. Navíc s kódem obce se pak dají dobře párovat státní open data. Hierarchie obcí je třeba tady.