balrog-kun
(Andrzej Zaborowski)
45
Ja bym sprobowal pythonem, ale moze da sie szybciej i latwiej po zaladowaniu do postgisa?
Nie mam akurat zadnej bazy z danymi z osm2pgsql, zeby to wyprobowac, ale mam baze postgisowa zaladowana z osmosis. Wyprobowalem nastepujace zapytanie:
SELECT member_id, array_agg(v) FROM relation_members NATURAL JOIN (SELECT relation_id, v FROM relation_tags WHERE k = ‘colour’ ORDER BY v) AS routes GROUP BY member_id;
W pierwszej kolumnie dostaje identyfikator drogi a w drugiej posortowana liste kolorow szlakow czy tras autobusowych do ktorych nalezy segment:
osm=# SELECT ...;
member_id | array_agg
-----------+-------------------
30440075 | {#090,#090,#00C}
30446493 | {#A0A000}
33178035 | {orange}
42351108 | {#090}
32790995 | {#a76534}
38213443 | {orange}
27941094 | {orange}
30446938 | {#008000}
30448065 | {#A0A000}
28937835 | {#090}
...
EDIT: z tego co widze wsytarczyloby dodac kolumne “kolory” do tabelki planet_osm_line zapytaniem w stylu ALTER TABLE planet_osm_line ADD COLUMN kolory text USING … czy jakos tak. Zamiast k = ‘colour’ mozna uzyc k LIKE ‘marked_trail_.*’