Tak, prográmek funguje. "streets.py" generuje query na cesty a adresní
body, "streets_only.py" jen cesty. Je to Python3.
Zatím to není moc user friendly.
Proměnná "l" se nastaví na seznam názvů street relací a pak stačí volat
"main(l)".
Dotaz pro Overpass dostanete na std.out.

Vzhledem k tomu, že přidávání adresních bodů by způsobilo monstrózní relace,
tak jsem přidal jen chybějící části té samé ulice. (Proto ta verze
"streets_only")
Taky jsem překlopil těch pár associatedStreet z jihu Prahy na street.

Co dělá ten "site=stree" tag na Zenklově? Vypadá to, jako překlep...
(https://www.openstreetmap.org/relation/6104636#map=14/50.1116/14.4657)

Pokud proti tomu nikdo nemá vážné námitky,
tak si najdu nejvíce fragmentované ulice v Praze a vygeneruju pro ně street
relationy.
Tak od pohledu se nabízí Václavák, Plzeňská, Karlák, Vršovická,
Vinohradská...

Opakuju: nebudu nic mazat, jen přidám sdružující relace nad částmi té samé
ulice.

2017-12-12 21:54 GMT+01:00 Matej Lieskovský <[email protected]>:

> O stavu renderování názvů ulic z relací zatím nevím,
> hodlám se na to někdy zeptat asi na centrálním talku.
>
> Já bych až tak rozsáhlý systém relací neočekával.
> Spousta věcí (PSČ, Městská část, etc.) jde řešit
> pomocí explicitních tagů, nebo obsáhnutím oblastí
> (když už máme geospacial data, tak je využívejme).
> Ulice jsou trochu special případ,
> protože kromě dedikované relace se dají "vykoukat"
> jen srovnáním name tagů mezi sousedícími cestami
> což je vážně opruz a bude náchylné na chyby.
>
> Matej
>
> 2017-12-12 19:42 GMT+01:00 jzvc <[email protected]>:
>
>> Dne 12.12.2017 v 14:28 Matej Lieskovský napsal(a):
>>
>>> V ČR cca 190 relací a 740 prvků, většina z toho v Kladně.
>>> (Oproti tomu 7 associatedStreet)
>>> Nasazení v Praze by to mohlo dost výrazně zvednout
>>> a to včetně průměrného počtu prvků.
>>>
>>> Nechci tím teď mazat ty explicitně uvedené hodnoty,
>>> ale dříve nebo později se na nějaký takový systém bude muset přejít
>>> jinak se z toho všichni zcvokneme.
>>> Moc ukázat, že to umíme udržovat, by mělo pomoct.
>>>
>>
>> Cus,
>>
>> nejsem si uplne jiste tim, ze zrovna tenhle zpusob je uplne dobrej napad.
>>
>> Totiz chapu to tak, ze budouci stav si predstavujes zhruba tak, ze na
>> dome bude (nejspis v relaci, protoze jich muze byt vic) 1-N cisel popisnych.
>>
>> Pak budes ten dum mit v 0-N relacich ulic, a do nich prihodis i
>> odpovidajici CP. (0 proto, ze v malych obcich bude dum rovnou v obci, coz
>> jaksi algoritmus opet ponekud komplikuje)
>>
>> A ty relace ulic naladujes trebas do relaci mestskych casti (pokud jsou =
>> dalsi komplikace) a ty pak do relaci dany obce/mesta ...
>>
>> K tomu bys pak jeste musel mit extra relace s PSC, protoze ty
>> neodpovidaji ani castem ani obcim.
>>
>> Chapu to dobre? Posleze by samo bylo nadbytecny aby dany udaje byly primo
>> na budove/adrese.
>>
>> Jenze se tim dostanes do pomerne nechutny situace v pripade, ze pro danou
>> budovu budes chtit zjistit adresu. Bude to defakto znamenat rekurzivni
>> nacitani pomerne rozsahlyho stromu relaci.
>>
>> Na druhou stranu by bylo pomerne jednoduchy pridani novyho domu - udelal
>> bys na nim jen zaznam s CP a oboji hodil do relace prislusny ulice.
>>
>> Byt principielne souhlasim ze to neni reseni spatny, nejsem si jistej
>> tim, jestli je technicky akceptovatelny. Zato jestli si necim jistej skorem
>> 100% sem, je to, ze bys to musel nejmin 10 let udrzova oboji, viz "nove"
>> schema dopravy.
>>
>> Mimochodem, umi alespon jeden libovolny reneder ulici s nazvem ulice
>> vyhradne v relaci? Celkem by me to zajimalo.
>>
>>
>>
>>> Další krok by asi bylo automatické šíření cizojazyčných překladů názvů,
>>> ať není potřeba zadávat těch 15 překladů všude
>>> a ať jsou pro všechny části stejné.
>>>
>>> Matej
>>>
>>> 2017-12-12 14:16 GMT+01:00 Marián Kyral <[email protected]
>>> <mailto:[email protected]>>:
>>>
>>>     Něco takového se u nás ve větší míře používá?
>>>
>>>     Marián
>>>
>>>     ---------- Původní e-mail ----------
>>>     Od: Matej Lieskovský <[email protected]
>>>     <mailto:[email protected]>>
>>>     Komu: OpenStreetMap Czech Republic <[email protected]
>>>     <mailto:[email protected]>>
>>>     Datum: 12. 12. 2017 14:06:09
>>>     Předmět: [Talk-cz] Poloautomatické kontrolovaní street relation
>>>
>>>
>>>         Prokrastinuju od učení a tak si bastlím systém na hledání chyb v
>>>         street relation.
>>>
>>>         Idea:
>>>         Předhodím tomu seznam street relací v Praze.
>>>         Vyplivne to věci, které by
>>>           a) měly být v některé street relaci a nejsou
>>>           b) jsou v street relaci a neměly by být
>>>
>>>         Zatím je to vypadá na celkem triviální Python,
>>>         který mi bude generovat obrovský Overpass dotaz.
>>>         Co všechno bych měl chytat?
>>>         Aktuálně kontroluju, že pokud existuje street "X",
>>>         tak do ní spadají všechny
>>>         adresní body s addr:street=X
>>>         a silnice s name=X
>>>         a naopak v ní není nic s jinou vyplňenou hodnotou.
>>>
>>>         Názory? Protipříklady? Nápady na vylepšení?
>>>
>>>         Matej
>>>
>>>         PS: Až to bude rozumně použitelné, tak nějak pošlu zdroják.
>>>         Možná si konečně zprovozním GitHub.
>>>         _______________________________________________
>>>         Talk-cz mailing list
>>>         [email protected] <mailto:[email protected]>
>>>         https://lists.openstreetmap.org/listinfo/talk-cz
>>>         <https://lists.openstreetmap.org/listinfo/talk-cz>
>>>
>>>
>>>     _______________________________________________
>>>     Talk-cz mailing list
>>>     [email protected] <mailto:[email protected]>
>>>     https://lists.openstreetmap.org/listinfo/talk-cz
>>>     <https://lists.openstreetmap.org/listinfo/talk-cz>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Talk-cz mailing list
>>> [email protected]
>>> https://lists.openstreetmap.org/listinfo/talk-cz
>>>
>>>
>>
>> _______________________________________________
>> Talk-cz mailing list
>> [email protected]
>> https://lists.openstreetmap.org/listinfo/talk-cz
>>
>
>
def header():
    print("[out:xml][timeout:25][bbox:49.93,14.20,50.19,14.75];")

def street(name):
    # Find all elements of the street
    print('((relation[type=street][name="', name, '"]);>>;)->.included;', sep="")
    # Find elements that should not be in the set but are
    print('((node.included["addr:street"]["addr:street"!="', name, '"]);', sep="")
    print(' (way.included[highway][name!="', name, '"]);)', sep="")
    print('->.wrong;')
    # Find elements that should be in the street
    print('((way[name="', name, '"]);(node["addr:street"="', name, '"]);', sep="")
    print(')->.intended;')
    # Find missing elements
    print('((node.intended;-node.included;);')
    print('(way.intended;-way.included;);')
    print(')->.missing;')
    print('(.missing;.wrong;>;);')
    print('out meta;')

def main(l):
    header()
    for i in l:
        street(i)

l = [
    "Mariánská","Písnická","Novodvorská","Zdislavická", # Converts from aS
    "Klapkova","Trojská","Zenklova"
    ]
def header():
    print("[out:xml][timeout:25][bbox:49.93,14.20,50.19,14.75];")

def street(name):
    # Find all elements of the street
    print('((relation[type=street][name="', name, '"]);>>;)->.included;', sep="")
    # Find elements that should not be in the set but are
    print('(way.included[highway][name][name!="', name, '"];)->.wrong;', sep="")
    # Find elements that should be in the street
    print('(way[name="', name, '"])->.intended;', sep="")
    # Find missing elements
    print('((way.intended;) - (way.included;))->.missing;')
    print('(.missing;.wrong;);')
    print('(._;>;);')
    print('out meta;')

def main(l):
    header()
    for i in l:
        street(i)

l = [
    "Mariánská","Písnická","Novodvorská","Zdislavická", # Converts from aS
    "Klapkova","Trojská","Zenklova"
    ]
_______________________________________________
Talk-cz mailing list
[email protected]
https://lists.openstreetmap.org/listinfo/talk-cz

Odpovedet emailem