flex.lua

Tue, 15 Sep 2020 17:36:45 +0300

author
Teemu Piippo <teemu@hecknology.net>
date
Tue, 15 Sep 2020 17:36:45 +0300
changeset 2
8d4148a8ded4
parent 1
959dc869b765
child 4
34a84c0a427c
permissions
-rw-r--r--

ulkoilureitit

0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1 -- This configuration for the flex backend tries to be compatible with the
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
2 -- original pgsql c-transform backend. There might be some corner cases but
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
3 -- it should mostly do exactly the same.
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
4
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
5 -- Set this to true if you were using option -K|--keep-coastlines.
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
6 local keep_coastlines = true
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
7
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
8 -- Set this to the table name prefix (what used to be option -p|--prefix).
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
9 local prefix = 'planet_osm'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
10
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
11 -- Set this to true if multipolygons should be written as polygons into db
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
12 -- (what used to be option -G|--multi-geometry).
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
13 local multi_geometry = true
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
14
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
15 -- Set this to true if you want an hstore column (what used to be option
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
16 -- -k|--hstore). Can not be true if "hstore_all" is true.
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
17 local hstore = true
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
18
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
19 -- Set this to true if you want all tags in an hstore column (what used to
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
20 -- be option -j|--hstore-all). Can not be true if "hstore" is true.
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
21 local hstore_all = false
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
22
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
23 -- Only keep objects that have a value in one of the non-hstore columns
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
24 -- (normal action with --hstore is to keep all objects). Equivalent to
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
25 -- what used to be set through option --hstore-match-only.
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
26 local hstore_match_only = true
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
27
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
28 -- Set this to add an additional hstore (key/value) column containing all tags
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
29 -- that start with the specified string, eg "name:". Will produce an extra
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
30 -- hstore column that contains all "name:xx" tags. Equivalent to what used to
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
31 -- be set through option -z|--hstore-column.
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
32 local hstore_column = nil
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
33
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
34 -- There is some very old specialized handling of route relations in osm2pgsql,
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
35 -- which you probably don't need. This is disabled here, but you can enable
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
36 -- it by setting this to true. If you don't understand this, leave it alone.
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
37 local enable_legacy_route_processing = false
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
38
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
39 -- ---------------------------------------------------------------------------
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
40
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
41 if hstore and hstore_all then
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
42 error("hstore and hstore_all can't be both true")
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
43 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
44
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
45 -- Used for splitting up long linestrings
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
46 if osm2pgsql.srid == 4326 then
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
47 max_length = 1
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
48 else
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
49 max_length = 100000
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
50 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
51
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
52 -- Ways with any of the following keys will be treated as polygon
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
53 local polygon_keys = {
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
54 'aeroway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
55 'amenity',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
56 'building',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
57 'harbour',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
58 'historic',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
59 'landuse',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
60 'leisure',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
61 'man_made',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
62 'military',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
63 'natural',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
64 'office',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
65 'place',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
66 'power',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
67 'public_transport',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
68 'shop',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
69 'sport',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
70 'tourism',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
71 'water',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
72 'waterway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
73 'wetland',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
74 'abandoned:aeroway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
75 'abandoned:amenity',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
76 'abandoned:building',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
77 'abandoned:landuse',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
78 'abandoned:power',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
79 'area:highway'
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
80 }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
81
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
82 -- Objects without any of the following keys will be deleted
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
83 local generic_keys = {
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
84 'access',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
85 'addr:housename',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
86 'addr:housenumber',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
87 'addr:interpolation',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
88 'admin_level',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
89 'aerialway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
90 'aeroway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
91 'amenity',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
92 'area',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
93 'barrier',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
94 'bicycle',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
95 'boundary',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
96 'brand',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
97 'bridge',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
98 'building',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
99 'capital',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
100 'construction',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
101 'covered',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
102 'culvert',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
103 'cutting',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
104 'denomination',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
105 'disused',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
106 'ele',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
107 'embankment',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
108 'foot',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
109 'generation:source',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
110 'harbour',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
111 'healthcare',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
112 'highway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
113 'historic',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
114 'hours',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
115 'intermittent',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
116 'junction',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
117 'landuse',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
118 'layer',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
119 'leisure',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
120 'lock',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
121 'man_made',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
122 'military',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
123 'motorcar',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
124 'name',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
125 'natural',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
126 'office',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
127 'oneway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
128 'operator',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
129 'place',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
130 'population',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
131 'power',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
132 'power_source',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
133 'public_transport',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
134 'railway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
135 'ref',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
136 'religion',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
137 'route',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
138 'service',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
139 'shop',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
140 'sport',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
141 'surface',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
142 'toll',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
143 'tourism',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
144 'tower:type',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
145 'tracktype',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
146 'tunnel',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
147 'water',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
148 'waterway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
149 'wetland',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
150 'width',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
151 'wood',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
152 'abandoned:aeroway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
153 'abandoned:amenity',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
154 'abandoned:building',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
155 'abandoned:landuse',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
156 'abandoned:power',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
157 'area:highway'
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
158 }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
159
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
160 -- The following keys will be deleted
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
161 local delete_keys = {
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
162 'attribution',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
163 'comment',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
164 'created_by',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
165 'fixme',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
166 'note',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
167 'note:*',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
168 'odbl',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
169 'odbl:note',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
170 'source',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
171 'source:*',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
172 'source_ref',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
173 'way',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
174 'way_area',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
175 'z_order',
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
176 }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
177
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
178 local point_columns = {
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
179 'access',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
180 'addr:housename',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
181 'addr:housenumber',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
182 'addr:interpolation',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
183 'admin_level',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
184 'aerialway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
185 'aeroway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
186 'amenity',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
187 'area',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
188 'barrier',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
189 'bicycle',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
190 'brand',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
191 'bridge',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
192 'boundary',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
193 'building',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
194 'capital',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
195 'construction',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
196 'covered',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
197 'culvert',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
198 'cutting',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
199 'denomination',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
200 'disused',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
201 'ele',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
202 'embankment',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
203 'foot',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
204 'generator:source',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
205 'harbour',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
206 'highway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
207 'historic',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
208 'horse',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
209 'intermittent',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
210 'junction',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
211 'landuse',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
212 'layer',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
213 'leisure',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
214 'lock',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
215 'man_made',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
216 'military',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
217 'motorcar',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
218 'name',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
219 'name:fi',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
220 'name:sv',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
221 'minority_name',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
222 'majority_name',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
223 'bilingual_name',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
224 'natural',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
225 'office',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
226 'oneway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
227 'operator',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
228 'place',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
229 'population',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
230 'power',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
231 'power_source',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
232 'public_transport',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
233 'railway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
234 'ref',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
235 'religion',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
236 'route',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
237 'service',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
238 'shop',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
239 'sport',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
240 'surface',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
241 'toll',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
242 'tourism',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
243 'tower:type',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
244 'tunnel',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
245 'water',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
246 'waterway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
247 'wetland',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
248 'width',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
249 'wood',
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
250 }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
251
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
252 local non_point_columns = {
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
253 'access',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
254 'addr:housename',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
255 'addr:housenumber',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
256 'addr:interpolation',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
257 'admin_level',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
258 'aerialway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
259 'aeroway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
260 'amenity',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
261 'area',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
262 'barrier',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
263 'bicycle',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
264 'brand',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
265 'bridge',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
266 'boundary',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
267 'building',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
268 'construction',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
269 'covered',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
270 'culvert',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
271 'cutting',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
272 'denomination',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
273 'disused',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
274 'embankment',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
275 'foot',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
276 'generator:source',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
277 'harbour',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
278 'highway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
279 'historic',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
280 'horse',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
281 'intermittent',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
282 'junction',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
283 'landuse',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
284 'layer',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
285 'leisure',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
286 'lock',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
287 'man_made',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
288 'military',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
289 'motorcar',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
290 'name',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
291 'name:fi',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
292 'name:sv',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
293 'minority_name',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
294 'majority_name',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
295 'bilingual_name',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
296 'natural',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
297 'office',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
298 'oneway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
299 'operator',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
300 'place',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
301 'population',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
302 'power',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
303 'power_source',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
304 'public_transport',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
305 'railway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
306 'ref',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
307 'ref_class',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
308 'ref_width',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
309 'religion',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
310 'route',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
311 'service',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
312 'shop',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
313 'sport',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
314 'surface',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
315 'toll',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
316 'tourism',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
317 'tower:type',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
318 'tracktype',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
319 'tunnel',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
320 'water',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
321 'waterway',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
322 'wetland',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
323 'width',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
324 'wood',
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
325 }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
326
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
327 -- highlight some suburbs in the capital region
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
328 boroughs = {
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
329 -- Helsinki
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
330 ["Q2116584"] = 1, -- Vuosaari / Nordsjö
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
331 ["Q2510635"] = 1, -- Oulunkylä / Åggelby
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
332 ["Q3130945"] = 1, -- Viikki / Vik
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
333 ["Q1614778"] = 1, -- Herttoniemi / Hertonäs
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
334 -- Espoo
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
335 ["Q166942"] = 1, -- Leppävaara / Alberga
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
336 ["Q3107346"] = 1, -- Matinkylä / Mattby
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
337 ["Q211491"] = 1, -- Espoonlahti / Esboviken
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
338 ["Q211489"] = 1, -- Espoon keskus / Esbo centrum
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
339 ["Q219044"] = 1, -- Kauklahti / Köklax
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
340 ["Q1668730"] = 1, -- Tapiola / Hagalund
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
341 -- Vantaa
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
342 ["Q2640455"] = 1, -- Tikkurila / Dickursby
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
343 ["Q4412122"] = 1, -- Aviapolis
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
344 ["Q3736737"] = 1, -- Myyrmäki / Myrbacka
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
345 ["Q4557316"] = 1, -- Kivistö
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
346 ["Q4556551"] = 1, -- Koivukylä / Björkby
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
347 ["Q3742144"] = 1, -- Korso
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
348 ["Q4556262"] = 1, -- Hakunila / Håkansböle
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
349 }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
350
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
351 --
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
352 -- Name in majority language for object. This is name unless both name:fi and
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
353 -- name:sv disagree with name.
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
354 -- @param tags Raw OSM tags
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
355 -- @return Bilingual name
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
356 --
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
357 function majority_name(tags)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
358 if tags.name ~= nil and tags['name:sv'] ~= nil and tags['name:fi'] and tags.name ~= tags['name:fi'] and tags.name ~= tags['name:sv']
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
359 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
360 return tags['name:fi']
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
361 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
362 return tags.name
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
363 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
364 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
365 --
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
366 -- Name in minority language for object. This is the Swedish name if name is in
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
367 -- Finnish, and the Finnish name if name is in Swedish.
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
368 -- @param tags Raw OSM tags
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
369 -- @return Bilingual name
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
370 --
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
371 function minority_name(tags)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
372 if tags['name:sv'] ~= nil and tags['name'] ~= tags['name:sv']
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
373 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
374 return tags['name:sv']
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
375 elseif tags['name:fi'] ~= nil and tags['name'] ~= tags['name:fi']
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
376 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
377 return tags['name:fi']
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
378 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
379 return nil
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
380 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
381 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
382
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
383 function bilingual_name(tags)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
384 if tags.majority_name ~= nil and tags.minority_name ~= nil
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
385 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
386 return tags.majority_name .. '\n' .. tags.minority_name
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
387 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
388 return tags.majority_name
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
389 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
390 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
391
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
392 -- Makes highway classes more sensible
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
393 function highway_class(tags)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
394 if string.match(tags.highway, '_link$')
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
395 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
396 if tags.tags.functional_class == 'service' or tags.tags.functional_class == 'unclassified'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
397 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
398 return tags.tags.functional_class
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
399 elseif tags.tags.functional_class ~= nil
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
400 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
401 return tags.tags.functional_class..'_link'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
402 elseif tags.highway == 'motorway_link'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
403 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
404 return 'trunk_link'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
405 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
406 return tags.highway
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
407 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
408 elseif tags.highway == 'motorway'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
409 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
410 if tags.tags.functional_class == 'primary' or tags.tags.functional_class == 'secondary' or tags.tags.functional_class == 'tertiary'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
411 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
412 return tags.tags.functional_class
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
413 elseif tags.tags.functional_class == 'service'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
414 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
415 return 'service'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
416 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
417 return 'trunk'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
418 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
419 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
420 if tags.highway ~= nil and tags.tags.functional_class ~= nil
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
421 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
422 return tags.tags.functional_class
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
423 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
424 return tags.highway
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
425 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
426 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
427 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
428
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
429 function has_shields(tags)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
430 return (tags.highway == 'trunk' or tags.highway == 'primary' or tags.highway == 'secondary' or tags.highway == 'tertiary')
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
431 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
432
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
433 -- https://stackoverflow.com/a/7615129
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
434 function mysplit(inputstr, sep)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
435 if sep == nil then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
436 sep = "%s"
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
437 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
438 local t={}
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
439 for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
440 table.insert(t, str)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
441 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
442 return t
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
443 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
444
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
445 function combine_stringlists(a, b)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
446 if a ~= nil and a ~= ''
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
447 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
448 if b ~= nil and b ~= ''
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
449 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
450 return a..';'..b
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
451 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
452 return a
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
453 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
454 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
455 return b
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
456 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
457 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
458
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
459 function combine_refs(a, b)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
460 return combine_stringlists(a, b)
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
461 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
462
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
463 -- Widths of ref characters in Liikenne font, used to calculate shield sizes
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
464 character_widths = {
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
465 ['0'] = 616,
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
466 ['1'] = 337,
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
467 ['2'] = 600,
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
468 ['3'] = 621,
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
469 ['4'] = 689,
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
470 ['5'] = 623,
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
471 ['6'] = 566,
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
472 ['7'] = 499,
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
473 ['8'] = 616,
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
474 ['9'] = 566,
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
475 [' '] = 260,
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
476 ['E'] = 613,
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
477 }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
478
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
479 function ref_width(ref)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
480 local result = 0
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
481 for i = 1, #ref
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
482 do
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
483 result = result + (character_widths[ref:sub(i, i)] or 0)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
484 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
485 return math.max(math.ceil((result - 1000) / 77), 1)
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
486 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
487
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
488 function ref_widths(refs)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
489 local result = ''
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
490 for _, ref in ipairs(mysplit(refs, ';'))
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
491 do
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
492 result = combine_stringlists(result, ref_width(ref))
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
493 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
494 return result
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
495 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
496
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
497 -- Makes refs more sensible.
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
498 -- 5-digit refs are not found on the ground so they are omitted.
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
499 -- int_ref is added to refs.
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
500 function highway_refs(tags)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
501 if has_shields(tags) and (tags.ref ~= nil or tags.tags.int_ref ~= nil)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
502 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
503 if tags.junction == 'roundabout'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
504 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
505 return nil
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
506 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
507 local result = ''
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
508 local all_refs = combine_refs(tags.ref, tags.tags.int_ref)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
509 for _, ref in ipairs(mysplit(all_refs, ';'))
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
510 do
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
511 if tonumber(ref) == nil or tonumber(ref) < 10000
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
512 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
513 ref = string.gsub(ref, '^E 0', 'E ')
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
514 result = combine_refs(result, ref)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
515 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
516 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
517 return result
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
518 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
519 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
520 return tags.ref
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
521 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
522 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
523
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
524 -- classify road type by number
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
525 function road_class_by_ref(ref)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
526 local n = tonumber(ref)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
527 if n ~= nil and n > 0
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
528 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
529 if n < 40
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
530 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
531 return 'valtatie'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
532 elseif n < 100
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
533 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
534 return 'kantatie'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
535 elseif n < 1000
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
536 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
537 return 'seututie'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
538 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
539 return 'yhdystie'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
540 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
541 elseif string.match(ref, '^E ?%d+$')
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
542 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
543 return 'eurooppatie'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
544 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
545 return 'unknown'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
546 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
547 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
548
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
549 function classify_road_numbers(refs)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
550 local result = ''
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
551 for _, ref in ipairs(mysplit(refs, ';'))
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
552 do
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
553 result = combine_stringlists(result, road_class_by_ref(ref))
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
554 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
555 return result
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
556 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
557
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
558 function gen_columns(text_columns, with_hstore, area, geometry_type)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
559 columns = {}
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
560
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
561 local add_column = function (name, type)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
562 columns[#columns + 1] = { column = name, type = type }
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
563 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
564
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
565 for _, c in ipairs(text_columns) do
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
566 add_column(c, 'text')
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
567 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
568
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
569 add_column('z_order', 'int')
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
570
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
571 if area ~= nil then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
572 if area then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
573 add_column('way_area', 'area')
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
574 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
575 add_column('way_area', 'real')
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
576 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
577 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
578
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
579 if hstore_column then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
580 add_column(hstore_column, 'hstore')
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
581 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
582
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
583 if with_hstore then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
584 add_column('tags', 'hstore')
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
585 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
586
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
587 add_column('way', geometry_type)
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
588
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
589 return columns
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
590 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
591
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
592 local tables = {}
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
593
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
594 tables.point = osm2pgsql.define_table{
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
595 name = prefix .. '_point',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
596 ids = { type = 'node', id_column = 'osm_id' },
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
597 columns = gen_columns(point_columns, hstore or hstore_all, nil, 'point')
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
598 }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
599
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
600 tables.line = osm2pgsql.define_table{
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
601 name = prefix .. '_line',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
602 ids = { type = 'way', id_column = 'osm_id' },
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
603 columns = gen_columns(non_point_columns, hstore or hstore_all, false, 'linestring')
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
604 }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
605
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
606 tables.polygon = osm2pgsql.define_table{
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
607 name = prefix .. '_polygon',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
608 ids = { type = 'area', id_column = 'osm_id' },
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
609 columns = gen_columns(non_point_columns, hstore or hstore_all, true, 'geometry')
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
610 }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
611
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
612 tables.roads = osm2pgsql.define_table{
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
613 name = prefix .. '_roads',
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
614 ids = { type = 'way', id_column = 'osm_id' },
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
615 columns = gen_columns(non_point_columns, hstore or hstore_all, false, 'linestring')
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
616 }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
617
2
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
618 tables.routes = osm2pgsql.define_way_table(
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
619 prefix .. '_routes',
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
620 {
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
621 { column = 'tags', type = 'hstore' },
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
622 { column = 'ref', type = 'text' },
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
623 { column = 'name', type = 'text' },
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
624 { column = 'network', type = 'text' },
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
625 { column = 'route', type = 'text' },
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
626 { column = 'layer', type = 'text' },
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
627 { column = 'osm_way_id', type = 'text' },
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
628 { column = 'way', type = 'linestring' },
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
629 }
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
630 )
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
631
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
632
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
633 local z_order_lookup = {
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
634 proposed = {1, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
635 construction = {2, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
636 steps = {10, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
637 cycleway = {10, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
638 bridleway = {10, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
639 footway = {10, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
640 path = {10, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
641 track = {11, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
642 service = {15, false},
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
643
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
644 tertiary_link = {24, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
645 secondary_link = {25, true},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
646 primary_link = {27, true},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
647 trunk_link = {28, true},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
648 motorway_link = {29, true},
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
649
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
650 raceway = {30, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
651 pedestrian = {31, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
652 living_street = {32, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
653 road = {33, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
654 unclassified = {33, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
655 residential = {33, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
656 tertiary = {34, false},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
657 secondary = {36, true},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
658 primary = {37, true},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
659 trunk = {38, true},
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
660 motorway = {39, true}
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
661 }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
662
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
663 function as_bool(value)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
664 return value == 'yes' or value == 'true' or value == '1'
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
665 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
666
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
667 function get_z_order(tags)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
668 local z_order = 100 * math.floor(tonumber(tags.layer or '0') or 0)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
669 local roads = false
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
670
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
671 local highway = tags['highway']
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
672 if highway then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
673 local r = z_order_lookup[highway] or {0, false}
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
674 z_order = z_order + r[1]
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
675 roads = r[2]
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
676 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
677
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
678 if tags.railway then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
679 z_order = z_order + 35
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
680 roads = true
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
681 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
682
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
683 if tags.boundary and tags.boundary == 'administrative' then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
684 roads = true
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
685 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
686
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
687 if as_bool(tags.bridge) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
688 z_order = z_order + 100
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
689 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
690
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
691 if as_bool(tags.tunnel) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
692 z_order = z_order - 100
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
693 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
694
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
695 return z_order, roads
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
696 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
697
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
698 function make_check_in_list_func(list)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
699 local h = {}
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
700 for _, k in ipairs(list) do
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
701 h[k] = true
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
702 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
703 return function(tags)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
704 for k, _ in pairs(tags) do
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
705 if h[k] then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
706 return true
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
707 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
708 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
709 return false
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
710 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
711 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
712
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
713 local is_polygon = make_check_in_list_func(polygon_keys)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
714 local clean_tags = osm2pgsql.make_clean_tags_func(delete_keys)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
715
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
716 function make_column_hash(columns)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
717 local h = {}
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
718
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
719 for _, k in ipairs(columns) do
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
720 h[k] = true
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
721 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
722
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
723 return h
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
724 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
725
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
726 function make_get_output(columns, hstore_all)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
727 local h = make_column_hash(columns)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
728 if hstore_all then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
729 return function(tags)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
730 local output = {}
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
731 local hstore_entries = {}
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
732
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
733 for k, _ in pairs(tags) do
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
734 if h[k] then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
735 output[k] = tags[k]
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
736 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
737 hstore_entries[k] = tags[k]
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
738 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
739
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
740 return output, hstore_entries
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
741 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
742 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
743 return function(tags)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
744 local output = {}
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
745 local hstore_entries = {}
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
746
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
747 for k, _ in pairs(tags) do
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
748 if h[k] then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
749 output[k] = tags[k]
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
750 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
751 hstore_entries[k] = tags[k]
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
752 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
753 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
754
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
755 return output, hstore_entries
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
756 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
757 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
758 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
759
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
760 local has_generic_tag = make_check_in_list_func(generic_keys)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
761
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
762 local get_point_output = make_get_output(point_columns, hstore_all)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
763 local get_non_point_output = make_get_output(non_point_columns, hstore_all)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
764
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
765 function get_hstore_column(tags)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
766 local len = #hstore_column
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
767 local h = {}
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
768 for k, v in pairs(tags) do
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
769 if k:sub(1, len) == hstore_column then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
770 h[k:sub(len + 1)] = v
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
771 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
772 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
773
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
774 if next(h) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
775 return h
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
776 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
777 return nil
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
778 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
779
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
780 function add_generic_tags(object, output)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
781 output.majority_name = majority_name(output)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
782 output.minority_name = minority_name(output)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
783 output.bilingual_name = bilingual_name(output)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
784 return output
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
785 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
786
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
787 function osm2pgsql.process_node(object)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
788 if clean_tags(object.tags) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
789 return
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
790 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
791
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
792 if object.tags.layer then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
793 object.tags.layer = tonumber(object.tags.layer)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
794 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
795
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
796 local output
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
797 local output_hstore = {}
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
798 if hstore or hstore_all then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
799 output, output_hstore = get_point_output(object.tags)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
800 if not next(output) and not next(output_hstore) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
801 return
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
802 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
803 if hstore_match_only and not has_generic_tag(object.tags) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
804 return
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
805 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
806 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
807 output = object.tags
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
808 if not has_generic_tag(object.tags) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
809 return
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
810 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
811 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
812
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
813 output = add_generic_tags(object, output)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
814 output.tags = output_hstore
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
815
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
816 if hstore_column then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
817 output[hstore_column] = get_hstore_column(object.tags)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
818 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
819
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
820 tables.point:add_row(output)
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
821 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
822
2
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
823 route_ways = {}
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
824
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
825 function osm2pgsql.process_way(object)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
826 if clean_tags(object.tags) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
827 return
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
828 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
829
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
830 if object.tags.layer then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
831 object.tags.layer = tonumber(object.tags.layer)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
832 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
833
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
834
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
835 local add_area = false
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
836 if object.tags.natural == 'coastline' then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
837 add_area = true
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
838 if not keep_coastlines then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
839 object.tags.natural = nil
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
840 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
841 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
842
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
843 local output
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
844 local output_hstore = {}
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
845 if hstore or hstore_all then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
846 output, output_hstore = get_non_point_output(object.tags)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
847 if not next(output) and not next(output_hstore) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
848 return
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
849 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
850 if hstore_match_only and not has_generic_tag(object.tags) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
851 return
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
852 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
853 if add_area and hstore_all then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
854 output_hstore.area = 'yes'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
855 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
856 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
857 output = object.tags
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
858 if not has_generic_tag(object.tags) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
859 return
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
860 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
861 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
862
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
863 local polygon
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
864 local area_tag = object.tags.area
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
865 if area_tag == 'yes' or area_tag == '1' or area_tag == 'true' then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
866 polygon = true
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
867 elseif area_tag == 'no' or area_tag == '0' or area_tag == 'false' then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
868 polygon = false
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
869 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
870 polygon = is_polygon(object.tags)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
871 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
872
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
873 if add_area then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
874 output.area = 'yes'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
875 polygon = true
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
876 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
877
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
878 local z_order, roads = get_z_order(object.tags)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
879 output.z_order = z_order
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
880 output = add_generic_tags(object, output)
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
881
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
882 output.tags = output_hstore
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
883
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
884 if output.highway ~= nil
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
885 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
886 if output.highway == 'construction'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
887 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
888 return
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
889 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
890 output.highway = highway_class(output)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
891 output.ref = highway_refs(output)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
892 if output.highway == 'construction' and output.construction == 'motorway'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
893 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
894 output.construction = 'trunk'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
895 elseif output.highway == 'construction' and output.construction == 'motorway_link'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
896 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
897 output.construction = 'trunk_link'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
898 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
899
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
900 -- classify references for for Finland shield rendering
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
901 if output.ref ~= nil
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
902 then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
903 output.ref_class = classify_road_numbers(output.ref)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
904 output.ref_width = ref_widths(output.ref)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
905 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
906 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
907
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
908 if hstore_column then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
909 output[hstore_column] = get_hstore_column(object.tags)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
910 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
911
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
912 if polygon and object.is_closed then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
913 output.way = { create = 'area' }
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
914 tables.polygon:add_row(output)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
915 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
916 output.way = { create = 'line', split_at = max_length }
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
917 tables.line:add_row(output)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
918 if roads then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
919 tables.roads:add_row(output)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
920 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
921 end
2
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
922
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
923 if osm2pgsql.stage == 2
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
924 then
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
925 local routes = route_ways[object.id]
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
926 if routes ~= nil
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
927 then
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
928 for index, route in ipairs(routes) do
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
929 route_type = route.tags.route
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
930 if route_type == 'bicycle' and route.tags.network ~= nil
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
931 then
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
932 route_type = route_type .. '_' .. route.tags.network
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
933 end
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
934 row = {
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
935 tags = object.tags,
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
936 ref = route.tags.ref,
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
937 name = route.tags.name,
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
938 network = route.tags.network,
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
939 route = route_type,
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
940 osm_way_id = object.id,
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
941 layer = object.tags.layer or 0,
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
942 geom = { create = 'line' }
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
943 }
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
944 tables.routes:add_row(row)
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
945 end
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
946 end
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
947 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
948 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
949
2
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
950
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
951 function osm2pgsql.select_relation_members(relation)
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
952 if relation.tags.type == 'route' and (relation.tags.route == 'foot' or relation.tags.route == 'hiking' or relation.tags.route == 'bicycle')
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
953 then
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
954 for _, member in ipairs(relation.members) do
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
955 if member.type == 'w' then
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
956 member_id = member.ref
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
957 if not route_ways[member_id] then
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
958 route_ways[member_id] = {}
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
959 end
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
960 table.insert(route_ways[member_id], relation)
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
961 end
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
962 end
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
963 return { ways = osm2pgsql.way_member_ids(relation) }
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
964 end
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
965 end
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
966
8d4148a8ded4 ulkoilureitit
Teemu Piippo <teemu@hecknology.net>
parents: 1
diff changeset
967
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
968 function osm2pgsql.process_relation(object)
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
969 if clean_tags(object.tags) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
970 return
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
971 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
972
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
973 local type = object.tags.type
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
974 if (type ~= 'route') and (type ~= 'multipolygon') and (type ~= 'boundary') then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
975 return
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
976 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
977 object.tags.type = nil
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
978
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
979 local output
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
980 local output_hstore = {}
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
981 if hstore or hstore_all then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
982 output, output_hstore = get_non_point_output(object.tags)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
983 if not next(output) and not next(output_hstore) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
984 return
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
985 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
986 if hstore_match_only and not has_generic_tag(object.tags) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
987 return
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
988 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
989 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
990 output = object.tags
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
991 if not has_generic_tag(object.tags) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
992 return
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
993 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
994 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
995
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
996 if not next(output) and not next(output_hstore) then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
997 return
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
998 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
999
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1000 if enable_legacy_route_processing and (hstore or hstore_all) and type == 'route' then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1001 if not object.tags.route_name then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1002 output_hstore.route_name = object.tags.name
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1003 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1004
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1005 local state = object.tags.state
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1006 if state ~= 'alternate' and state ~= 'connection' then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1007 state = 'yes'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1008 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1009
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1010 local network = object.tags.network
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1011 if network == 'lcn' then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1012 output_hstore.lcn = output_hstore.lcn or state
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1013 output_hstore.lcn_ref = output_hstore.lcn_ref or object.tags.ref
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1014 elseif network == 'rcn' then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1015 output_hstore.rcn = output_hstore.rcn or state
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1016 output_hstore.rcn_ref = output_hstore.rcn_ref or object.tags.ref
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1017 elseif network == 'ncn' then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1018 output_hstore.ncn = output_hstore.ncn or state
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1019 output_hstore.ncn_ref = output_hstore.ncn_ref or object.tags.ref
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1020 elseif network == 'lwn' then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1021 output_hstore.lwn = output_hstore.lwn or state
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1022 output_hstore.lwn_ref = output_hstore.lwn_ref or object.tags.ref
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1023 elseif network == 'rwn' then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1024 output_hstore.rwn = output_hstore.rwn or state
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1025 output_hstore.rwn_ref = output_hstore.rwn_ref or object.tags.ref
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1026 elseif network == 'nwn' then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1027 output_hstore.nwn = output_hstore.nwn or state
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1028 output_hstore.nwn_ref = output_hstore.nwn_ref or object.tags.ref
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1029 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1030
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1031 local pc = object.tags.preferred_color
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1032 if pc == '0' or pc == '1' or pc == '2' or pc == '3' or pc == '4' then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1033 output_hstore.route_pref_color = pc
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1034 else
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1035 output_hstore.route_pref_color = '0'
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1036 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1037 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1038
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1039 local make_boundary = false
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1040 local make_polygon = false
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1041 if type == 'boundary' then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1042 make_boundary = true
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1043 elseif type == 'multipolygon' and object.tags.boundary then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1044 make_boundary = true
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1045 elseif type == 'multipolygon' then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1046 make_polygon = true
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1047 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1048
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1049 local z_order, roads = get_z_order(object.tags)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1050 output.z_order = z_order
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1051 output = add_generic_tags(object, output)
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1052
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1053 output.tags = output_hstore
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1054
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1055 if hstore_column then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1056 output[hstore_column] = get_hstore_column(object.tags)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1057 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1058
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1059 if not make_polygon then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1060 output.way = { create = 'line', split_at = max_length }
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1061 tables.line:add_row(output)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1062 if roads then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1063 tables.roads:add_row(output)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1064 end
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1065 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1066
1
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1067 if make_boundary or make_polygon then
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1068 output.way = { create = 'area', multi = multi_geometry }
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1069 tables.polygon:add_row(output)
959dc869b765 korjattu indentaatio
Teemu Piippo <teemu@hecknology.net>
parents: 0
diff changeset
1070 end
0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1071 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1072

mercurial