Dne 2.2.2014 17:31, Petr Vejsada napsal:
Ahoj,

Dne Ne 2. února 2014 14:32:19, Marián Kyral napsal(a):

Ještě by se mi líbila jedna věc: Pokud kliknu na plochu, kde leží nějaká
komunikace, tak by se mohl zobrazit název této komunikace (pokud má -
třeba ulice).

Teoreticky tuším, jak by se to dalo řešit:
1) Pokud je parcela typu, který mne zajímá - silnice, ostatní
komunikace... tak:
   2) Najdu tečny s hranicí parcely na kterých daný bod leží.
   3) Vezmu kratší tečnu a hledám ulici, která tuto tečnu protíná.
   4) Pokud takováto ulice existuje, vrátím její název.

Odkud chceš brát název ulice? Z OSM nebo RUIAN? No to je jedno, není třeba
dělat tečny (tečna je přímka a tedy neexistuje kratší/delší tečna).


Z RUIAN. A za ty tečny se omlouvám, myslel jsem úsečky, které spojují protilehlé strany parcely a které procházejí bodem X. V podstatě by výsledkem téměř vždy měla být jen jedna ulice a to ta, která protíná úsečku nejblíže bodu X.

Není problém najít nejbližší ulici (komunikaci) k bodu a třeba i takovou,
která leží uvnitř plochy.

Takže klik na bod, najdeme parcelu a nejbližší komunikaci, která zároveň leží (st_intersects) alespoň částí uvnitř parcely. Počet takových komunikací se
bude limitně blížit jedné ;).

Jestli ti jde jen o název ulice, tak stačí najít nejbližší ulici.

Nejrychlejší hledání je asi

select nazev from rn_ulice order by definicni_cara

Tomu ještě rozumím ;-)

<->
<muj_bod_kam_jsem:kliknul typu geometry point a stejného SRID, jako má
deiniční čára>  limit 1;

Huh, cože?

Může se stát, že těch ulic bude více - křižovatky "Y". Pak bych asi
nevrátil nic.

Skoro vždy je něco nejbližší, s výjimkou, kdy je stejně daleko více než jedna ulice. Spíš nevracet nic, když to "nejbližší" bude třeba kilometr daleko.

To by šlo.


--
Petr


_______________________________________________
Talk-cz mailing list
Talk-cz@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-cz

_______________________________________________
Talk-cz mailing list
Talk-cz@openstreetmap.org
https://lists.openstreetmap.org/listinfo/talk-cz

Odpovedet emailem