flex.lua

Mon, 14 Sep 2020 22:55:45 +0300

author
Teemu Piippo <teemu@hecknology.net>
date
Mon, 14 Sep 2020 22:55:45 +0300
changeset 0
b0eb3af2f9ee
child 1
959dc869b765
permissions
-rw-r--r--

restore .hg...

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
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
42 error("hstore and hstore_all can't be both true")
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
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
47 max_length = 1
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
48 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
49 max_length = 100000
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 = {
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
54 'aeroway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
55 'amenity',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
56 'building',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
57 'harbour',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
58 'historic',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
59 'landuse',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
60 'leisure',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
61 'man_made',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
62 'military',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
63 'natural',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
64 'office',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
65 'place',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
66 'power',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
67 'public_transport',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
68 'shop',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
69 'sport',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
70 'tourism',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
71 'water',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
72 'waterway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
73 'wetland',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
74 'abandoned:aeroway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
75 'abandoned:amenity',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
76 'abandoned:building',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
77 'abandoned:landuse',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
78 'abandoned:power',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
79 'area:highway'
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 = {
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
84 'access',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
85 'addr:housename',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
86 'addr:housenumber',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
87 'addr:interpolation',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
88 'admin_level',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
89 'aerialway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
90 'aeroway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
91 'amenity',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
92 'area',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
93 'barrier',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
94 'bicycle',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
95 'boundary',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
96 'brand',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
97 'bridge',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
98 'building',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
99 'capital',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
100 'construction',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
101 'covered',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
102 'culvert',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
103 'cutting',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
104 'denomination',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
105 'disused',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
106 'ele',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
107 'embankment',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
108 'foot',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
109 'generation:source',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
110 'harbour',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
111 'healthcare',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
112 'highway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
113 'historic',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
114 'hours',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
115 'intermittent',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
116 'junction',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
117 'landuse',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
118 'layer',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
119 'leisure',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
120 'lock',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
121 'man_made',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
122 'military',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
123 'motorcar',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
124 'name',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
125 'natural',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
126 'office',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
127 'oneway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
128 'operator',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
129 'place',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
130 'population',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
131 'power',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
132 'power_source',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
133 'public_transport',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
134 'railway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
135 'ref',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
136 'religion',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
137 'route',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
138 'service',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
139 'shop',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
140 'sport',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
141 'surface',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
142 'toll',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
143 'tourism',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
144 'tower:type',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
145 'tracktype',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
146 'tunnel',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
147 'water',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
148 'waterway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
149 'wetland',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
150 'width',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
151 'wood',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
152 'abandoned:aeroway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
153 'abandoned:amenity',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
154 'abandoned:building',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
155 'abandoned:landuse',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
156 'abandoned:power',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
157 'area:highway'
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 = {
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
162 'attribution',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
163 'comment',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
164 'created_by',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
165 'fixme',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
166 'note',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
167 'note:*',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
168 'odbl',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
169 'odbl:note',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
170 'source',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
171 'source:*',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
172 'source_ref',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
173 'way',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
174 'way_area',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
175 'z_order',
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 = {
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
179 'access',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
180 'addr:housename',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
181 'addr:housenumber',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
182 'addr:interpolation',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
183 'admin_level',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
184 'aerialway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
185 'aeroway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
186 'amenity',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
187 'area',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
188 'barrier',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
189 'bicycle',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
190 'brand',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
191 'bridge',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
192 'boundary',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
193 'building',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
194 'capital',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
195 'construction',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
196 'covered',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
197 'culvert',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
198 'cutting',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
199 'denomination',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
200 'disused',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
201 'ele',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
202 'embankment',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
203 'foot',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
204 'generator:source',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
205 'harbour',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
206 'highway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
207 'historic',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
208 'horse',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
209 'intermittent',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
210 'junction',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
211 'landuse',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
212 'layer',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
213 'leisure',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
214 'lock',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
215 'man_made',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
216 'military',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
217 'motorcar',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
218 'name',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
219 'name:fi',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
220 'name:sv',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
221 'minority_name',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
222 'majority_name',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
223 'bilingual_name',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
224 'natural',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
225 'office',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
226 'oneway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
227 'operator',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
228 'place',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
229 'population',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
230 'power',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
231 'power_source',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
232 'public_transport',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
233 'railway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
234 'ref',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
235 'religion',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
236 'route',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
237 'service',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
238 'shop',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
239 'sport',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
240 'surface',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
241 'toll',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
242 'tourism',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
243 'tower:type',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
244 'tunnel',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
245 'water',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
246 'waterway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
247 'wetland',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
248 'width',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
249 'wood',
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 = {
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
253 'access',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
254 'addr:housename',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
255 'addr:housenumber',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
256 'addr:interpolation',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
257 'admin_level',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
258 'aerialway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
259 'aeroway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
260 'amenity',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
261 'area',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
262 'barrier',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
263 'bicycle',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
264 'brand',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
265 'bridge',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
266 'boundary',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
267 'building',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
268 'construction',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
269 'covered',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
270 'culvert',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
271 'cutting',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
272 'denomination',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
273 'disused',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
274 'embankment',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
275 'foot',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
276 'generator:source',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
277 'harbour',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
278 'highway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
279 'historic',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
280 'horse',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
281 'intermittent',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
282 'junction',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
283 'landuse',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
284 'layer',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
285 'leisure',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
286 'lock',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
287 'man_made',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
288 'military',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
289 'motorcar',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
290 'name',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
291 'name:fi',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
292 'name:sv',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
293 'minority_name',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
294 'majority_name',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
295 'bilingual_name',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
296 'natural',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
297 'office',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
298 'oneway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
299 'operator',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
300 'place',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
301 'population',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
302 'power',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
303 'power_source',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
304 'public_transport',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
305 'railway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
306 'ref',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
307 'ref_class',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
308 'ref_width',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
309 'religion',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
310 'route',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
311 'service',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
312 'shop',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
313 'sport',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
314 'surface',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
315 'toll',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
316 'tourism',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
317 'tower:type',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
318 'tracktype',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
319 'tunnel',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
320 'water',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
321 'waterway',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
322 'wetland',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
323 'width',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
324 'wood',
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 = {
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
329 -- Helsinki
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
330 ["Q2116584"] = 1, -- Vuosaari / Nordsjö
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
331 ["Q2510635"] = 1, -- Oulunkylä / Åggelby
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
332 ["Q3130945"] = 1, -- Viikki / Vik
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
333 ["Q1614778"] = 1, -- Herttoniemi / Hertonäs
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
334 -- Espoo
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
335 ["Q166942"] = 1, -- Leppävaara / Alberga
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
336 ["Q3107346"] = 1, -- Matinkylä / Mattby
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
337 ["Q211491"] = 1, -- Espoonlahti / Esboviken
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
338 ["Q211489"] = 1, -- Espoon keskus / Esbo centrum
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
339 ["Q219044"] = 1, -- Kauklahti / Köklax
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
340 ["Q1668730"] = 1, -- Tapiola / Hagalund
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
341 -- Vantaa
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
342 ["Q2640455"] = 1, -- Tikkurila / Dickursby
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
343 ["Q4412122"] = 1, -- Aviapolis
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
344 ["Q3736737"] = 1, -- Myyrmäki / Myrbacka
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
345 ["Q4557316"] = 1, -- Kivistö
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
346 ["Q4556551"] = 1, -- Koivukylä / Björkby
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
347 ["Q3742144"] = 1, -- Korso
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
348 ["Q4556262"] = 1, -- Hakunila / Håkansböle
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)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
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']
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
359 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
360 return tags['name:fi']
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
361 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
362 return tags.name
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
363 end
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)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
372 if tags['name:sv'] ~= nil and tags['name'] ~= tags['name:sv']
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
373 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
374 return tags['name:sv']
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
375 elseif tags['name:fi'] ~= nil and tags['name'] ~= tags['name:fi']
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
376 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
377 return tags['name:fi']
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
378 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
379 return nil
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
380 end
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)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
384 if tags.majority_name ~= nil and tags.minority_name ~= nil
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
385 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
386 return tags.majority_name .. '\n' .. tags.minority_name
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
387 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
388 return tags.majority_name
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
389 end
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)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
394 if string.match(tags.highway, '_link$')
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
395 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
396 if tags.tags.functional_class == 'service' or tags.tags.functional_class == 'unclassified'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
397 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
398 return tags.tags.functional_class
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
399 elseif tags.tags.functional_class ~= nil
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
400 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
401 return tags.tags.functional_class..'_link'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
402 elseif tags.highway == 'motorway_link'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
403 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
404 return 'trunk_link'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
405 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
406 return tags.highway
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
407 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
408 elseif tags.highway == 'motorway'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
409 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
410 if tags.tags.functional_class == 'primary' or tags.tags.functional_class == 'secondary' or tags.tags.functional_class == 'tertiary'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
411 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
412 return tags.tags.functional_class
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
413 elseif tags.tags.functional_class == 'service'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
414 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
415 return 'service'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
416 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
417 return 'trunk'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
418 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
419 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
420 if tags.highway ~= nil and tags.tags.functional_class ~= nil
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
421 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
422 return tags.tags.functional_class
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
423 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
424 return tags.highway
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
425 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
426 end
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)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
430 return (tags.highway == 'trunk' or tags.highway == 'primary' or tags.highway == 'secondary' or tags.highway == 'tertiary')
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)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
435 if sep == nil then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
436 sep = "%s"
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
437 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
438 local t={}
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
439 for str in string.gmatch(inputstr, "([^"..sep.."]+)") do
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
440 table.insert(t, str)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
441 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
442 return t
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)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
446 if a ~= nil and a ~= ''
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
447 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
448 if b ~= nil and b ~= ''
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
449 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
450 return a..';'..b
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
451 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
452 return a
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
453 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
454 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
455 return b
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
456 end
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)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
460 return combine_stringlists(a, b)
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 = {
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
465 ['0'] = 616,
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
466 ['1'] = 337,
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
467 ['2'] = 600,
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
468 ['3'] = 621,
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
469 ['4'] = 689,
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
470 ['5'] = 623,
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
471 ['6'] = 566,
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
472 ['7'] = 499,
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
473 ['8'] = 616,
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
474 ['9'] = 566,
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
475 [' '] = 260,
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
476 ['E'] = 613,
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)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
480 local result = 0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
481 for i = 1, #ref
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
482 do
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
483 result = result + (character_widths[ref:sub(i, i)] or 0)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
484 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
485 return math.max(math.ceil((result - 1000) / 77), 1)
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)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
489 local result = ''
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
490 for _, ref in ipairs(mysplit(refs, ';'))
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
491 do
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
492 result = combine_stringlists(result, ref_width(ref))
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
493 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
494 return result
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)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
501 if has_shields(tags) and (tags.ref ~= nil or tags.tags.int_ref ~= nil)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
502 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
503 if tags.junction == 'roundabout'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
504 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
505 return nil
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
506 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
507 local result = ''
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
508 local all_refs = combine_refs(tags.ref, tags.tags.int_ref)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
509 for _, ref in ipairs(mysplit(all_refs, ';'))
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
510 do
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
511 if tonumber(ref) == nil or tonumber(ref) < 10000
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
512 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
513 ref = string.gsub(ref, '^E 0', 'E ')
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
514 result = combine_refs(result, ref)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
515 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
516 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
517 return result
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
518 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
519 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
520 return tags.ref
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
521 end
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)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
526 local n = tonumber(ref)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
527 if n ~= nil and n > 0
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
528 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
529 if n < 40
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
530 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
531 return 'valtatie'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
532 elseif n < 100
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
533 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
534 return 'kantatie'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
535 elseif n < 1000
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
536 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
537 return 'seututie'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
538 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
539 return 'yhdystie'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
540 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
541 elseif string.match(ref, '^E ?%d+$')
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
542 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
543 return 'eurooppatie'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
544 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
545 return 'unknown'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
546 end
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)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
550 local result = ''
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
551 for _, ref in ipairs(mysplit(refs, ';'))
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
552 do
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
553 result = combine_stringlists(result, road_class_by_ref(ref))
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
554 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
555 return result
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)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
559 columns = {}
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
560
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
561 local add_column = function (name, type)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
562 columns[#columns + 1] = { column = name, type = type }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
563 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
564
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
565 for _, c in ipairs(text_columns) do
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
566 add_column(c, 'text')
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
567 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
568
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
569 add_column('z_order', 'int')
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
570
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
571 if area ~= nil then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
572 if area then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
573 add_column('way_area', 'area')
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
574 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
575 add_column('way_area', 'real')
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
576 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
577 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
578
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
579 if hstore_column then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
580 add_column(hstore_column, 'hstore')
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
581 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
582
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
583 if with_hstore then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
584 add_column('tags', 'hstore')
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
585 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
586
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
587 add_column('way', geometry_type)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
588
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
589 return columns
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{
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
595 name = prefix .. '_point',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
596 ids = { type = 'node', id_column = 'osm_id' },
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
597 columns = gen_columns(point_columns, hstore or hstore_all, nil, 'point')
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{
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
601 name = prefix .. '_line',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
602 ids = { type = 'way', id_column = 'osm_id' },
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
603 columns = gen_columns(non_point_columns, hstore or hstore_all, false, 'linestring')
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{
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
607 name = prefix .. '_polygon',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
608 ids = { type = 'area', id_column = 'osm_id' },
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
609 columns = gen_columns(non_point_columns, hstore or hstore_all, true, 'geometry')
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{
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
613 name = prefix .. '_roads',
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
614 ids = { type = 'way', id_column = 'osm_id' },
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
615 columns = gen_columns(non_point_columns, hstore or hstore_all, false, 'linestring')
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
616 }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
617
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
618 local z_order_lookup = {
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
619 proposed = {1, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
620 construction = {2, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
621 steps = {10, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
622 cycleway = {10, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
623 bridleway = {10, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
624 footway = {10, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
625 path = {10, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
626 track = {11, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
627 service = {15, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
628
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
629 tertiary_link = {24, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
630 secondary_link = {25, true},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
631 primary_link = {27, true},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
632 trunk_link = {28, true},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
633 motorway_link = {29, true},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
634
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
635 raceway = {30, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
636 pedestrian = {31, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
637 living_street = {32, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
638 road = {33, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
639 unclassified = {33, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
640 residential = {33, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
641 tertiary = {34, false},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
642 secondary = {36, true},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
643 primary = {37, true},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
644 trunk = {38, true},
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
645 motorway = {39, true}
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
646 }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
647
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
648 function as_bool(value)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
649 return value == 'yes' or value == 'true' or value == '1'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
650 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
651
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
652 function get_z_order(tags)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
653 local z_order = 100 * math.floor(tonumber(tags.layer or '0') or 0)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
654 local roads = false
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
655
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
656 local highway = tags['highway']
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
657 if highway then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
658 local r = z_order_lookup[highway] or {0, false}
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
659 z_order = z_order + r[1]
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
660 roads = r[2]
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
661 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
662
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
663 if tags.railway then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
664 z_order = z_order + 35
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
665 roads = true
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
666 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
667
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
668 if tags.boundary and tags.boundary == 'administrative' then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
669 roads = true
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
670 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
671
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
672 if as_bool(tags.bridge) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
673 z_order = z_order + 100
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
674 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
675
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
676 if as_bool(tags.tunnel) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
677 z_order = z_order - 100
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
678 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
679
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
680 return z_order, roads
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
681 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
682
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
683 function make_check_in_list_func(list)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
684 local h = {}
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
685 for _, k in ipairs(list) do
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
686 h[k] = true
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
687 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
688 return function(tags)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
689 for k, _ in pairs(tags) do
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
690 if h[k] then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
691 return true
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
692 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
693 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
694 return false
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
695 end
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 local is_polygon = make_check_in_list_func(polygon_keys)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
699 local clean_tags = osm2pgsql.make_clean_tags_func(delete_keys)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
700
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
701 function make_column_hash(columns)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
702 local h = {}
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
703
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
704 for _, k in ipairs(columns) do
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
705 h[k] = true
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
706 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
707
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
708 return h
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
709 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
710
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
711 function make_get_output(columns, hstore_all)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
712 local h = make_column_hash(columns)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
713 if hstore_all then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
714 return function(tags)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
715 local output = {}
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
716 local hstore_entries = {}
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
717
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
718 for k, _ in pairs(tags) do
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
719 if h[k] then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
720 output[k] = tags[k]
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
721 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
722 hstore_entries[k] = tags[k]
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
723 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
724
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
725 return output, hstore_entries
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
726 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
727 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
728 return function(tags)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
729 local output = {}
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
730 local hstore_entries = {}
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
731
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
732 for k, _ in pairs(tags) do
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
733 if h[k] then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
734 output[k] = tags[k]
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
735 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
736 hstore_entries[k] = tags[k]
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
737 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
738 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
739
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
740 return output, hstore_entries
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
741 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
742 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
743 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
744
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
745 local has_generic_tag = make_check_in_list_func(generic_keys)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
746
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
747 local get_point_output = make_get_output(point_columns, hstore_all)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
748 local get_non_point_output = make_get_output(non_point_columns, hstore_all)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
749
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
750 function get_hstore_column(tags)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
751 local len = #hstore_column
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
752 local h = {}
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
753 for k, v in pairs(tags) do
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
754 if k:sub(1, len) == hstore_column then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
755 h[k:sub(len + 1)] = v
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
756 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
757 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
758
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
759 if next(h) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
760 return h
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
761 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
762 return nil
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
763 end
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 add_generic_tags(object, output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
766 output.majority_name = majority_name(output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
767 output.minority_name = minority_name(output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
768 output.bilingual_name = bilingual_name(output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
769 return output
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
770 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
771
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
772 function osm2pgsql.process_node(object)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
773 if clean_tags(object.tags) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
774 return
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
775 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
776
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
777 if object.tags.layer then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
778 object.tags.layer = tonumber(object.tags.layer)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
779 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
780
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
781 local output
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
782 local output_hstore = {}
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
783 if hstore or hstore_all then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
784 output, output_hstore = get_point_output(object.tags)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
785 if not next(output) and not next(output_hstore) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
786 return
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
787 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
788 if hstore_match_only and not has_generic_tag(object.tags) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
789 return
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
790 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
791 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
792 output = object.tags
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
793 if not has_generic_tag(object.tags) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
794 return
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
795 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
796 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
797
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
798 output = add_generic_tags(object, output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
799 output.tags = output_hstore
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
800
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
801 if hstore_column then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
802 output[hstore_column] = get_hstore_column(object.tags)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
803 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
804
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
805 tables.point:add_row(output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
806 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
807
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
808 function osm2pgsql.process_way(object)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
809 if clean_tags(object.tags) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
810 return
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
811 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
812
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
813 if object.tags.layer then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
814 object.tags.layer = tonumber(object.tags.layer)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
815 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
816
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
817
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
818 local add_area = false
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
819 if object.tags.natural == 'coastline' then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
820 add_area = true
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
821 if not keep_coastlines then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
822 object.tags.natural = nil
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
823 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
824 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
825
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
826 local output
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
827 local output_hstore = {}
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
828 if hstore or hstore_all then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
829 output, output_hstore = get_non_point_output(object.tags)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
830 if not next(output) and not next(output_hstore) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
831 return
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
832 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
833 if hstore_match_only and not has_generic_tag(object.tags) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
834 return
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
835 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
836 if add_area and hstore_all then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
837 output_hstore.area = 'yes'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
838 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
839 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
840 output = object.tags
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
841 if not has_generic_tag(object.tags) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
842 return
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
843 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
844 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
845
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
846 local polygon
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
847 local area_tag = object.tags.area
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
848 if area_tag == 'yes' or area_tag == '1' or area_tag == 'true' then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
849 polygon = true
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
850 elseif area_tag == 'no' or area_tag == '0' or area_tag == 'false' then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
851 polygon = false
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
852 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
853 polygon = is_polygon(object.tags)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
854 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
855
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
856 if add_area then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
857 output.area = 'yes'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
858 polygon = true
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
859 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
860
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
861 local z_order, roads = get_z_order(object.tags)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
862 output.z_order = z_order
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
863 output = add_generic_tags(object, output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
864
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
865 output.tags = output_hstore
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
866
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
867 if output.highway ~= nil
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
868 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
869 if output.highway == 'construction'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
870 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
871 return
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
872 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
873 output.highway = highway_class(output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
874 output.ref = highway_refs(output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
875 if output.highway == 'construction' and output.construction == 'motorway'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
876 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
877 output.construction = 'trunk'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
878 elseif output.highway == 'construction' and output.construction == 'motorway_link'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
879 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
880 output.construction = 'trunk_link'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
881 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
882
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
883 -- classify references for for Finland shield rendering
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
884 if output.ref ~= nil
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
885 then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
886 output.ref_class = classify_road_numbers(output.ref)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
887 output.ref_width = ref_widths(output.ref)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
888 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
889 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
890
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
891 if hstore_column then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
892 output[hstore_column] = get_hstore_column(object.tags)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
893 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
894
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
895 if polygon and object.is_closed then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
896 output.way = { create = 'area' }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
897 tables.polygon:add_row(output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
898 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
899 output.way = { create = 'line', split_at = max_length }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
900 tables.line:add_row(output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
901 if roads then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
902 tables.roads:add_row(output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
903 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
904 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
905 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
906
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
907 function osm2pgsql.process_relation(object)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
908 if clean_tags(object.tags) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
909 return
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
910 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
911
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
912 local type = object.tags.type
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
913 if (type ~= 'route') and (type ~= 'multipolygon') and (type ~= 'boundary') then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
914 return
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
915 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
916 object.tags.type = nil
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
917
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
918 local output
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
919 local output_hstore = {}
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
920 if hstore or hstore_all then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
921 output, output_hstore = get_non_point_output(object.tags)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
922 if not next(output) and not next(output_hstore) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
923 return
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
924 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
925 if hstore_match_only and not has_generic_tag(object.tags) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
926 return
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
927 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
928 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
929 output = object.tags
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
930 if not has_generic_tag(object.tags) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
931 return
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
932 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
933 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
934
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
935 if not next(output) and not next(output_hstore) then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
936 return
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
937 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
938
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
939 if enable_legacy_route_processing and (hstore or hstore_all) and type == 'route' then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
940 if not object.tags.route_name then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
941 output_hstore.route_name = object.tags.name
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
942 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
943
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
944 local state = object.tags.state
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
945 if state ~= 'alternate' and state ~= 'connection' then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
946 state = 'yes'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
947 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
948
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
949 local network = object.tags.network
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
950 if network == 'lcn' then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
951 output_hstore.lcn = output_hstore.lcn or state
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
952 output_hstore.lcn_ref = output_hstore.lcn_ref or object.tags.ref
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
953 elseif network == 'rcn' then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
954 output_hstore.rcn = output_hstore.rcn or state
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
955 output_hstore.rcn_ref = output_hstore.rcn_ref or object.tags.ref
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
956 elseif network == 'ncn' then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
957 output_hstore.ncn = output_hstore.ncn or state
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
958 output_hstore.ncn_ref = output_hstore.ncn_ref or object.tags.ref
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
959 elseif network == 'lwn' then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
960 output_hstore.lwn = output_hstore.lwn or state
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
961 output_hstore.lwn_ref = output_hstore.lwn_ref or object.tags.ref
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
962 elseif network == 'rwn' then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
963 output_hstore.rwn = output_hstore.rwn or state
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
964 output_hstore.rwn_ref = output_hstore.rwn_ref or object.tags.ref
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
965 elseif network == 'nwn' then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
966 output_hstore.nwn = output_hstore.nwn or state
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
967 output_hstore.nwn_ref = output_hstore.nwn_ref or object.tags.ref
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
968 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
969
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
970 local pc = object.tags.preferred_color
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
971 if pc == '0' or pc == '1' or pc == '2' or pc == '3' or pc == '4' then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
972 output_hstore.route_pref_color = pc
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
973 else
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
974 output_hstore.route_pref_color = '0'
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
975 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
976 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
977
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
978 local make_boundary = false
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
979 local make_polygon = false
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
980 if type == 'boundary' then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
981 make_boundary = true
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
982 elseif type == 'multipolygon' and object.tags.boundary then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
983 make_boundary = true
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
984 elseif type == 'multipolygon' then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
985 make_polygon = true
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
986 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
987
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
988 local z_order, roads = get_z_order(object.tags)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
989 output.z_order = z_order
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
990 output = add_generic_tags(object, output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
991
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
992 output.tags = output_hstore
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
993
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
994 if hstore_column then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
995 output[hstore_column] = get_hstore_column(object.tags)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
996 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
997
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
998 if not make_polygon then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
999 output.way = { create = 'line', split_at = max_length }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1000 tables.line:add_row(output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1001 if roads then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1002 tables.roads:add_row(output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1003 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1004 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1005
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1006 if make_boundary or make_polygon then
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1007 output.way = { create = 'area', multi = multi_geometry }
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1008 tables.polygon:add_row(output)
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1009 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1010 end
b0eb3af2f9ee restore .hg...
Teemu Piippo <teemu@hecknology.net>
parents:
diff changeset
1011

mercurial