Skip to content

Commit e3d82ea

Browse files
committed
Adjust line width based on zoom, mimicking maptiler styling
1 parent 67ecd3f commit e3d82ea

File tree

1 file changed

+42
-2
lines changed

1 file changed

+42
-2
lines changed

web/src/RenderNeighbourhood.svelte

+42-2
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,14 @@
6565
},
6666
};
6767
}
68+
69+
// Add some thickness
70+
let outline = 2.0;
71+
72+
// TODO Refactor helpers for zoom interpolation. The values below are adapted
73+
// from the Minor road layer in
74+
// https://api.maptiler.com/maps/streets-v2/style.json, treating all
75+
// interior roads as the secondary class.
6876
</script>
6977

7078
<GeoJSON data={gj} generateId>
@@ -88,7 +96,23 @@
8896
{...layerId("interior-roads-outlines")}
8997
filter={["==", ["get", "kind"], "interior_road"]}
9098
paint={{
91-
"line-width": 12,
99+
"line-width": [
100+
"interpolate",
101+
["linear", 2],
102+
["zoom"],
103+
5,
104+
0.5 + outline,
105+
10,
106+
1 + outline,
107+
12,
108+
1.5 + outline,
109+
14,
110+
4 + outline,
111+
16,
112+
7 + outline,
113+
20,
114+
24 + outline,
115+
],
92116
"line-color": "black",
93117
}}
94118
/>
@@ -97,7 +121,23 @@
97121
{...layerId("interior-roads")}
98122
filter={["==", ["get", "kind"], "interior_road"]}
99123
paint={{
100-
"line-width": 10,
124+
"line-width": [
125+
"interpolate",
126+
["linear", 2],
127+
["zoom"],
128+
5,
129+
0.5,
130+
10,
131+
1,
132+
12,
133+
1.5,
134+
14,
135+
4,
136+
16,
137+
7,
138+
20,
139+
24,
140+
],
101141
"line-color": lineColor,
102142
"line-opacity": hoverStateFilter(1.0, 0.5),
103143
}}

0 commit comments

Comments
 (0)