[Talk-cz] Ahoj,Re: Nová fíčura - kde chybí natrasovat budovy
Petr Vejsada
osm na propsychology.cz
Pátek Říjen 31 20:37:39 UTC 2014
Ahoj,
statistiky mám OK, ono to bude tím, že je to prostě náročné.
Čisté a jednoduché řešení je tohle (účelem je získat seznam SO, které se mají
zobrazit na mapě):
select kod
from ruian.rn_stavebni_objekt so
left join gis.cz_polygon polygon -- polygony v OSM
on st_intersects(so.hranice, polygon.way)
and polygon.building is not NULL
and polygon.building <> 'no'::text
where so.hranice is not NULL and not so.deleted
group by kod
having
sum(st_area(st_intersection(so.hranice, polygon.way))/st_area(so.hranice))
< 0.7
or sum(st_area(st_intersection(so.hranice, polygon.way))) is NULL;
jenže to bude pokaždé počítat ty plochy a to je pomalé
tak to zkusím rozdělit na:
- to samé, jen RIGHT join a počítat plochy tedy nebude u těch co se nekryjí
UNION
select kod
from ruian.rn_stavebni_objekt so
left join gis.cz_polygon polygon on st_intersects(so.hranice, polygon.way) AND
polygon.building is not NULL and polygon.building <> 'no'::text
where so.hranice is not NULL and not so.deleted and polygon.osm_id is NULL
-- tedy všechny, co se nepřekrývají vůbec.
Ten join bere přes index, tedy && bbox a pak recheck.
Asi to stejně moc nepomůže, moc se neušetří. Pořád to bude odhadem kolem 10M
výpočtů ploch kvůli tomu, že jeden SO v RUIAN bude geometricky vztažen k více
budovám v OSM.
No asi to nechám a nebude se to počítat každý den :-\
Dne Pá 31. října 2014 09:23:23, Marián Kyral napsal(a):
> Znám hlavně Oracle a tam taky občas narážím na roztodivné záhady s query
> plány. Máš aktuální statistiky? Možná by to chtělo přidat nebo ubrat nějaký
> index ;-)
Další informace o konferenci talk-cz