@tileflow/maps 0.1.0-alpha.18 → 0.1.0-alpha.19
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -13
- package/assets/streets/climate/build.py +13 -7
- package/assets/streets/climate/recipe.json +4 -1
- package/dist/index.js +545 -487
- package/package.json +4 -3
package/dist/index.js
CHANGED
|
@@ -556,22 +556,43 @@ var baedekerPathLabel = {
|
|
|
556
556
|
])
|
|
557
557
|
}
|
|
558
558
|
};
|
|
559
|
-
function
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
kind: "
|
|
567
|
-
|
|
568
|
-
|
|
559
|
+
function groundClass(...classes) {
|
|
560
|
+
return { field: "class", kind: "in", values: classes };
|
|
561
|
+
}
|
|
562
|
+
var gardenGround = {
|
|
563
|
+
kind: "all",
|
|
564
|
+
selectors: [
|
|
565
|
+
groundClass("garden"),
|
|
566
|
+
{ kind: "not", selector: { field: "type", kind: "in", values: ["flowerbed"] } }
|
|
567
|
+
]
|
|
568
|
+
};
|
|
569
|
+
var urbanParkGround = {
|
|
570
|
+
kind: "any",
|
|
571
|
+
selectors: [
|
|
572
|
+
{
|
|
573
|
+
kind: "all",
|
|
574
|
+
selectors: [
|
|
575
|
+
groundClass("park"),
|
|
576
|
+
{
|
|
577
|
+
kind: "not",
|
|
578
|
+
selector: {
|
|
579
|
+
field: "type",
|
|
580
|
+
kind: "in",
|
|
581
|
+
values: ["recreation_ground", "village_green", "zoo"]
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
]
|
|
585
|
+
},
|
|
586
|
+
gardenGround
|
|
587
|
+
]
|
|
588
|
+
};
|
|
589
|
+
function landcoverPattern(target, pattern, ground, options = {}) {
|
|
569
590
|
const minZoom = options.minZoom ?? 9;
|
|
570
591
|
return renderPass({
|
|
571
592
|
placement: { above: target },
|
|
572
|
-
feature: "
|
|
593
|
+
feature: options.feature ?? "landuse",
|
|
573
594
|
renderer: "fill",
|
|
574
|
-
selector,
|
|
595
|
+
selector: ground,
|
|
575
596
|
style: {
|
|
576
597
|
minZoom,
|
|
577
598
|
opacity: zoom.linear([
|
|
@@ -625,8 +646,6 @@ var baedekerTheme = defineOfficialTheme({
|
|
|
625
646
|
},
|
|
626
647
|
buildings: {
|
|
627
648
|
active: baedekerPalette.buildingActive,
|
|
628
|
-
businessCorridor: baedekerPalette.building,
|
|
629
|
-
businessCorridorOutline: baedekerPalette.buildingOutline,
|
|
630
649
|
civic: "#C77659",
|
|
631
650
|
commercial: "#C97E60",
|
|
632
651
|
destination: baedekerPalette.buildingActive,
|
|
@@ -675,6 +694,8 @@ var baedekerTheme = defineOfficialTheme({
|
|
|
675
694
|
wood: baedekerPalette.wood
|
|
676
695
|
},
|
|
677
696
|
landuse: {
|
|
697
|
+
activity: baedekerPalette.building,
|
|
698
|
+
activityOutline: baedekerPalette.buildingOutline,
|
|
678
699
|
cemetery: "#D0D0B5",
|
|
679
700
|
civic: "#E2D2BB",
|
|
680
701
|
commercial: "#E3D0BB",
|
|
@@ -842,10 +863,6 @@ var baedeker = bindOfficialMapTheme(
|
|
|
842
863
|
}),
|
|
843
864
|
buildings: withRenderStack(
|
|
844
865
|
buildings({
|
|
845
|
-
businessCorridor: {
|
|
846
|
-
fill: { visible: false },
|
|
847
|
-
outline: { visible: false }
|
|
848
|
-
},
|
|
849
866
|
flat: {
|
|
850
867
|
fill: {
|
|
851
868
|
color: baedekerPalette.building,
|
|
@@ -1060,6 +1077,10 @@ var baedeker = bindOfficialMapTheme(
|
|
|
1060
1077
|
}),
|
|
1061
1078
|
land: withRenderStack(
|
|
1062
1079
|
land({
|
|
1080
|
+
activityAreas: {
|
|
1081
|
+
fill: { visible: false },
|
|
1082
|
+
outline: { visible: false }
|
|
1083
|
+
},
|
|
1063
1084
|
background: { opacity: 1, pattern: "baedeker-paper-grain" },
|
|
1064
1085
|
globalLandcover: {
|
|
1065
1086
|
color: expr.match(
|
|
@@ -1148,43 +1169,43 @@ var baedeker = bindOfficialMapTheme(
|
|
|
1148
1169
|
rockHachures: landcoverPattern(
|
|
1149
1170
|
"land.landcover.rock.fill",
|
|
1150
1171
|
"baedeker-hachures",
|
|
1151
|
-
|
|
1172
|
+
groundClass("rock"),
|
|
1152
1173
|
{ minZoom: 8, opacity: 0.44 }
|
|
1153
1174
|
),
|
|
1154
1175
|
scrubHachures: landcoverPattern(
|
|
1155
1176
|
"land.landcover.scrub.fill",
|
|
1156
1177
|
"baedeker-hachures",
|
|
1157
|
-
|
|
1158
|
-
{ minZoom: 9, opacity: 0.34
|
|
1178
|
+
groundClass("scrub"),
|
|
1179
|
+
{ minZoom: 9, opacity: 0.34 }
|
|
1159
1180
|
),
|
|
1160
1181
|
orchardTexture: landcoverPattern(
|
|
1161
1182
|
"land.landcover.urbanPark.fill",
|
|
1162
1183
|
"baedeker-orchard",
|
|
1163
|
-
|
|
1164
|
-
{ minZoom: 11, opacity: 0.58
|
|
1184
|
+
gardenGround,
|
|
1185
|
+
{ minZoom: 11, opacity: 0.58 }
|
|
1165
1186
|
),
|
|
1166
1187
|
sandTexture: landcoverPattern(
|
|
1167
1188
|
"land.landcover.sand.fill",
|
|
1168
1189
|
"baedeker-sand",
|
|
1169
|
-
|
|
1190
|
+
groundClass("sand"),
|
|
1170
1191
|
{ minZoom: 9, opacity: 0.48 }
|
|
1171
1192
|
),
|
|
1172
1193
|
wetlandTexture: landcoverPattern(
|
|
1173
1194
|
"land.landcover.wetland.fill",
|
|
1174
1195
|
"baedeker-wetland",
|
|
1175
|
-
|
|
1176
|
-
{ minZoom: 9, opacity: 0.56 }
|
|
1196
|
+
groundClass("wetland"),
|
|
1197
|
+
{ feature: "landuseOverlay", minZoom: 9, opacity: 0.56 }
|
|
1177
1198
|
),
|
|
1178
1199
|
parkStipple: landcoverPattern(
|
|
1179
1200
|
"land.landcover.urbanPark.fill",
|
|
1180
1201
|
"baedeker-park-stipple",
|
|
1181
|
-
|
|
1182
|
-
{ minZoom: 10, opacity: 0.74
|
|
1202
|
+
urbanParkGround,
|
|
1203
|
+
{ minZoom: 10, opacity: 0.74 }
|
|
1183
1204
|
),
|
|
1184
1205
|
woodStipple: landcoverPattern(
|
|
1185
1206
|
"land.landcover.wood.fill",
|
|
1186
1207
|
"baedeker-park-stipple",
|
|
1187
|
-
|
|
1208
|
+
groundClass("wood"),
|
|
1188
1209
|
{ minZoom: 9, opacity: 0.5 }
|
|
1189
1210
|
),
|
|
1190
1211
|
residentialTexture: landusePattern(
|
|
@@ -1580,14 +1601,7 @@ var baedeker = bindOfficialMapTheme(
|
|
|
1580
1601
|
placement: { above: "water.bodies.fill" },
|
|
1581
1602
|
feature: "water",
|
|
1582
1603
|
renderer: "fill",
|
|
1583
|
-
selector: {
|
|
1584
|
-
coerce: "number",
|
|
1585
|
-
fallback: 0,
|
|
1586
|
-
field: "intermittent",
|
|
1587
|
-
kind: "compare",
|
|
1588
|
-
operator: "ne",
|
|
1589
|
-
value: 1
|
|
1590
|
-
},
|
|
1604
|
+
selector: { field: "intermittent", kind: "compare", operator: "ne", value: true },
|
|
1591
1605
|
style: {
|
|
1592
1606
|
minZoom: 7,
|
|
1593
1607
|
opacity: zoom.linear([
|
|
@@ -1602,14 +1616,7 @@ var baedeker = bindOfficialMapTheme(
|
|
|
1602
1616
|
placement: { above: "water.intermittent.bodies.fill" },
|
|
1603
1617
|
feature: "water",
|
|
1604
1618
|
renderer: "fill",
|
|
1605
|
-
selector: {
|
|
1606
|
-
coerce: "number",
|
|
1607
|
-
fallback: 0,
|
|
1608
|
-
field: "intermittent",
|
|
1609
|
-
kind: "compare",
|
|
1610
|
-
operator: "eq",
|
|
1611
|
-
value: 1
|
|
1612
|
-
},
|
|
1619
|
+
selector: { field: "intermittent", kind: "compare", operator: "eq", value: true },
|
|
1613
1620
|
style: {
|
|
1614
1621
|
minZoom: 9,
|
|
1615
1622
|
opacity: 0.36,
|
|
@@ -1792,8 +1799,8 @@ var blueprintPrimaryPoiLabel = {
|
|
|
1792
1799
|
opacity: 0.68
|
|
1793
1800
|
}
|
|
1794
1801
|
};
|
|
1795
|
-
var blueprintPoiFilterRank = expr2.toNumber(expr2.get(field2("
|
|
1796
|
-
var blueprintPoiSizeRank = expr2.toNumber(expr2.get(field2("
|
|
1802
|
+
var blueprintPoiFilterRank = expr2.toNumber(expr2.get(field2("filterrank")), 6);
|
|
1803
|
+
var blueprintPoiSizeRank = expr2.toNumber(expr2.get(field2("sizerank")), 17);
|
|
1797
1804
|
var blueprintPoiPlacementPriority = expr2.add(
|
|
1798
1805
|
expr2.multiply(blueprintPoiFilterRank, 17),
|
|
1799
1806
|
blueprintPoiSizeRank
|
|
@@ -1801,7 +1808,7 @@ var blueprintPoiPlacementPriority = expr2.add(
|
|
|
1801
1808
|
var blueprintPoiCalloutName = expr2.coalesce(
|
|
1802
1809
|
expr2.get(field2("name")),
|
|
1803
1810
|
expr2.get(field2("nameLatin")),
|
|
1804
|
-
expr2.get(field2("
|
|
1811
|
+
expr2.get(field2("nameEn")),
|
|
1805
1812
|
""
|
|
1806
1813
|
);
|
|
1807
1814
|
var prominentBuildingSelector = {
|
|
@@ -1834,7 +1841,7 @@ var prominentBuildingSelector = {
|
|
|
1834
1841
|
selectors: [
|
|
1835
1842
|
{
|
|
1836
1843
|
fallback: "",
|
|
1837
|
-
field: "
|
|
1844
|
+
field: "tone",
|
|
1838
1845
|
kind: "compare",
|
|
1839
1846
|
operator: "eq",
|
|
1840
1847
|
value: "destination"
|
|
@@ -1844,14 +1851,14 @@ var prominentBuildingSelector = {
|
|
|
1844
1851
|
selectors: [
|
|
1845
1852
|
{
|
|
1846
1853
|
fallback: "",
|
|
1847
|
-
field: "
|
|
1854
|
+
field: "tone",
|
|
1848
1855
|
kind: "in",
|
|
1849
1856
|
values: ["active", "commercial"]
|
|
1850
1857
|
},
|
|
1851
1858
|
{
|
|
1852
1859
|
coerce: "number",
|
|
1853
1860
|
fallback: 0,
|
|
1854
|
-
field: "
|
|
1861
|
+
field: "height",
|
|
1855
1862
|
kind: "compare",
|
|
1856
1863
|
operator: "gte",
|
|
1857
1864
|
value: 24
|
|
@@ -1866,10 +1873,10 @@ var prominentBuildingSelector = {
|
|
|
1866
1873
|
}
|
|
1867
1874
|
]
|
|
1868
1875
|
};
|
|
1869
|
-
function technicalLandPattern(target,
|
|
1876
|
+
function technicalLandPattern(target, pattern, selector, minZoom, opacity) {
|
|
1870
1877
|
return renderPass2({
|
|
1871
1878
|
placement: { above: target },
|
|
1872
|
-
feature,
|
|
1879
|
+
feature: "landuse",
|
|
1873
1880
|
renderer: "fill",
|
|
1874
1881
|
selector,
|
|
1875
1882
|
style: {
|
|
@@ -1909,8 +1916,6 @@ var blueprintTheme = defineOfficialTheme({
|
|
|
1909
1916
|
},
|
|
1910
1917
|
buildings: {
|
|
1911
1918
|
active: blueprintPalette.buildingInk,
|
|
1912
|
-
businessCorridor: blueprintPalette.building,
|
|
1913
|
-
businessCorridorOutline: blueprintPalette.buildingMuted,
|
|
1914
1919
|
civic: blueprintPalette.buildingInk,
|
|
1915
1920
|
commercial: blueprintPalette.building,
|
|
1916
1921
|
destination: blueprintPalette.buildingInk,
|
|
@@ -1959,6 +1964,8 @@ var blueprintTheme = defineOfficialTheme({
|
|
|
1959
1964
|
wood: blueprintPalette.park
|
|
1960
1965
|
},
|
|
1961
1966
|
landuse: {
|
|
1967
|
+
activity: blueprintPalette.building,
|
|
1968
|
+
activityOutline: blueprintPalette.buildingMuted,
|
|
1962
1969
|
cemetery: blueprintPalette.landDetail,
|
|
1963
1970
|
civic: blueprintPalette.landDetail,
|
|
1964
1971
|
commercial: blueprintPalette.landDetail,
|
|
@@ -2176,10 +2183,6 @@ var blueprint = bindOfficialMapTheme(
|
|
|
2176
2183
|
}),
|
|
2177
2184
|
buildings: withRenderStack2(
|
|
2178
2185
|
buildings2({
|
|
2179
|
-
businessCorridor: {
|
|
2180
|
-
fill: { visible: false },
|
|
2181
|
-
outline: { visible: false }
|
|
2182
|
-
},
|
|
2183
2186
|
flat: {
|
|
2184
2187
|
fill: {
|
|
2185
2188
|
color: blueprintPalette.building,
|
|
@@ -2274,11 +2277,11 @@ var blueprint = bindOfficialMapTheme(
|
|
|
2274
2277
|
kind: "all",
|
|
2275
2278
|
selectors: [
|
|
2276
2279
|
prominentBuildingSelector,
|
|
2277
|
-
{ field: "
|
|
2280
|
+
{ field: "height", kind: "has" },
|
|
2278
2281
|
{
|
|
2279
2282
|
coerce: "number",
|
|
2280
2283
|
fallback: 0,
|
|
2281
|
-
field: "
|
|
2284
|
+
field: "height",
|
|
2282
2285
|
kind: "compare",
|
|
2283
2286
|
operator: "gte",
|
|
2284
2287
|
value: 24
|
|
@@ -2294,7 +2297,7 @@ var blueprint = bindOfficialMapTheme(
|
|
|
2294
2297
|
color: blueprintPalette.annotation,
|
|
2295
2298
|
field: expr2.concat(
|
|
2296
2299
|
"H \u2248 ",
|
|
2297
|
-
expr2.toString(expr2.toNumber(expr2.get(field2("
|
|
2300
|
+
expr2.toString(expr2.toNumber(expr2.get(field2("height")), 0)),
|
|
2298
2301
|
" M"
|
|
2299
2302
|
),
|
|
2300
2303
|
font: "Noto Sans Regular",
|
|
@@ -2515,6 +2518,10 @@ var blueprint = bindOfficialMapTheme(
|
|
|
2515
2518
|
}),
|
|
2516
2519
|
land: withRenderStack2(
|
|
2517
2520
|
land2({
|
|
2521
|
+
activityAreas: {
|
|
2522
|
+
fill: { visible: false },
|
|
2523
|
+
outline: { visible: false }
|
|
2524
|
+
},
|
|
2518
2525
|
background: { opacity: 1, pattern: "blueprint-grid" },
|
|
2519
2526
|
globalLandcover: {
|
|
2520
2527
|
color: expr2.match(
|
|
@@ -2650,36 +2657,56 @@ var blueprint = bindOfficialMapTheme(
|
|
|
2650
2657
|
{
|
|
2651
2658
|
landscapeHatch: technicalLandPattern(
|
|
2652
2659
|
"land.landcover.wood.fill",
|
|
2653
|
-
"landcover",
|
|
2654
2660
|
"blueprint-landscape-hatch",
|
|
2655
2661
|
{
|
|
2656
2662
|
fallback: "",
|
|
2657
2663
|
field: "class",
|
|
2658
2664
|
kind: "in",
|
|
2659
|
-
values: ["wood"
|
|
2665
|
+
values: ["wood"]
|
|
2660
2666
|
},
|
|
2661
2667
|
11,
|
|
2662
2668
|
0.2
|
|
2663
2669
|
),
|
|
2664
2670
|
parkHatch: technicalLandPattern(
|
|
2665
2671
|
"land.landcover.urbanPark.fill",
|
|
2666
|
-
"landcover",
|
|
2667
2672
|
"blueprint-landscape-hatch",
|
|
2673
|
+
// The parks and gardens the land module draws as urban parks.
|
|
2668
2674
|
{
|
|
2669
|
-
kind: "
|
|
2675
|
+
kind: "any",
|
|
2670
2676
|
selectors: [
|
|
2671
2677
|
{
|
|
2672
|
-
|
|
2673
|
-
|
|
2674
|
-
|
|
2675
|
-
|
|
2676
|
-
|
|
2678
|
+
kind: "all",
|
|
2679
|
+
selectors: [
|
|
2680
|
+
{ fallback: "", field: "class", kind: "compare", operator: "eq", value: "park" },
|
|
2681
|
+
{
|
|
2682
|
+
kind: "not",
|
|
2683
|
+
selector: {
|
|
2684
|
+
fallback: "",
|
|
2685
|
+
field: "type",
|
|
2686
|
+
kind: "in",
|
|
2687
|
+
values: ["recreation_ground", "village_green", "zoo"]
|
|
2688
|
+
}
|
|
2689
|
+
}
|
|
2690
|
+
]
|
|
2677
2691
|
},
|
|
2678
2692
|
{
|
|
2679
|
-
|
|
2680
|
-
|
|
2681
|
-
|
|
2682
|
-
|
|
2693
|
+
kind: "all",
|
|
2694
|
+
selectors: [
|
|
2695
|
+
{
|
|
2696
|
+
fallback: "",
|
|
2697
|
+
field: "class",
|
|
2698
|
+
kind: "compare",
|
|
2699
|
+
operator: "eq",
|
|
2700
|
+
value: "garden"
|
|
2701
|
+
},
|
|
2702
|
+
{
|
|
2703
|
+
fallback: "",
|
|
2704
|
+
field: "type",
|
|
2705
|
+
kind: "compare",
|
|
2706
|
+
operator: "ne",
|
|
2707
|
+
value: "flowerbed"
|
|
2708
|
+
}
|
|
2709
|
+
]
|
|
2683
2710
|
}
|
|
2684
2711
|
]
|
|
2685
2712
|
},
|
|
@@ -2688,20 +2715,25 @@ var blueprint = bindOfficialMapTheme(
|
|
|
2688
2715
|
),
|
|
2689
2716
|
recreationHatch: technicalLandPattern(
|
|
2690
2717
|
"land.landuse.recreation.fill",
|
|
2691
|
-
"landuse",
|
|
2692
2718
|
"blueprint-landscape-hatch",
|
|
2693
2719
|
{
|
|
2694
|
-
|
|
2695
|
-
|
|
2696
|
-
|
|
2697
|
-
|
|
2720
|
+
kind: "any",
|
|
2721
|
+
selectors: [
|
|
2722
|
+
{ fallback: "", field: "class", kind: "in", values: ["pitch", "playground"] },
|
|
2723
|
+
{
|
|
2724
|
+
kind: "all",
|
|
2725
|
+
selectors: [
|
|
2726
|
+
{ fallback: "", field: "class", kind: "compare", operator: "eq", value: "park" },
|
|
2727
|
+
{ fallback: "", field: "type", kind: "compare", operator: "eq", value: "zoo" }
|
|
2728
|
+
]
|
|
2729
|
+
}
|
|
2730
|
+
]
|
|
2698
2731
|
},
|
|
2699
2732
|
12,
|
|
2700
2733
|
0.16
|
|
2701
2734
|
),
|
|
2702
2735
|
industrialHatch: technicalLandPattern(
|
|
2703
2736
|
"land.landuse.industrial.fill",
|
|
2704
|
-
"landuse",
|
|
2705
2737
|
"blueprint-building-hatch",
|
|
2706
2738
|
{
|
|
2707
2739
|
fallback: "",
|
|
@@ -2830,7 +2862,7 @@ var blueprint = bindOfficialMapTheme(
|
|
|
2830
2862
|
architecturalCallouts: renderPass2({
|
|
2831
2863
|
// Above every POI label: the first category listed is the top POI layer.
|
|
2832
2864
|
placement: { above: "poi.transport.label" },
|
|
2833
|
-
feature: "
|
|
2865
|
+
feature: "poiLabel",
|
|
2834
2866
|
renderer: "symbol",
|
|
2835
2867
|
selector: {
|
|
2836
2868
|
kind: "all",
|
|
@@ -2838,7 +2870,7 @@ var blueprint = bindOfficialMapTheme(
|
|
|
2838
2870
|
{ geometry: "point", kind: "geometry" },
|
|
2839
2871
|
{
|
|
2840
2872
|
fallback: "",
|
|
2841
|
-
field: "
|
|
2873
|
+
field: "class",
|
|
2842
2874
|
kind: "compare",
|
|
2843
2875
|
operator: "eq",
|
|
2844
2876
|
value: "landmark"
|
|
@@ -2848,14 +2880,14 @@ var blueprint = bindOfficialMapTheme(
|
|
|
2848
2880
|
selectors: [
|
|
2849
2881
|
{ field: "name", kind: "has" },
|
|
2850
2882
|
{ field: "nameLatin", kind: "has" },
|
|
2851
|
-
{ field: "
|
|
2883
|
+
{ field: "nameEn", kind: "has" }
|
|
2852
2884
|
]
|
|
2853
2885
|
},
|
|
2854
|
-
{ field: "
|
|
2886
|
+
{ field: "filterrank", kind: "has" },
|
|
2855
2887
|
{
|
|
2856
2888
|
coerce: "number",
|
|
2857
2889
|
fallback: 6,
|
|
2858
|
-
field: "
|
|
2890
|
+
field: "filterrank",
|
|
2859
2891
|
kind: "compare",
|
|
2860
2892
|
operator: "gte",
|
|
2861
2893
|
value: 0
|
|
@@ -2863,16 +2895,16 @@ var blueprint = bindOfficialMapTheme(
|
|
|
2863
2895
|
{
|
|
2864
2896
|
coerce: "number",
|
|
2865
2897
|
fallback: 6,
|
|
2866
|
-
field: "
|
|
2898
|
+
field: "filterrank",
|
|
2867
2899
|
kind: "compare",
|
|
2868
2900
|
operator: "lte",
|
|
2869
2901
|
value: 1
|
|
2870
2902
|
},
|
|
2871
|
-
{ field: "
|
|
2903
|
+
{ field: "sizerank", kind: "has" },
|
|
2872
2904
|
{
|
|
2873
2905
|
coerce: "number",
|
|
2874
2906
|
fallback: 17,
|
|
2875
|
-
field: "
|
|
2907
|
+
field: "sizerank",
|
|
2876
2908
|
kind: "compare",
|
|
2877
2909
|
operator: "gte",
|
|
2878
2910
|
value: 0
|
|
@@ -2880,7 +2912,7 @@ var blueprint = bindOfficialMapTheme(
|
|
|
2880
2912
|
{
|
|
2881
2913
|
coerce: "number",
|
|
2882
2914
|
fallback: 17,
|
|
2883
|
-
field: "
|
|
2915
|
+
field: "sizerank",
|
|
2884
2916
|
kind: "compare",
|
|
2885
2917
|
operator: "lte",
|
|
2886
2918
|
value: 8
|
|
@@ -3114,14 +3146,14 @@ var blueprint = bindOfficialMapTheme(
|
|
|
3114
3146
|
},
|
|
3115
3147
|
{
|
|
3116
3148
|
fallback: "",
|
|
3117
|
-
field: "
|
|
3149
|
+
field: "structure",
|
|
3118
3150
|
kind: "compare",
|
|
3119
3151
|
operator: "ne",
|
|
3120
3152
|
value: "bridge"
|
|
3121
3153
|
},
|
|
3122
3154
|
{
|
|
3123
3155
|
fallback: "",
|
|
3124
|
-
field: "
|
|
3156
|
+
field: "structure",
|
|
3125
3157
|
kind: "compare",
|
|
3126
3158
|
operator: "ne",
|
|
3127
3159
|
value: "tunnel"
|
|
@@ -3312,14 +3344,7 @@ var blueprint = bindOfficialMapTheme(
|
|
|
3312
3344
|
placement: { above: "water.bodies.fill" },
|
|
3313
3345
|
feature: "water",
|
|
3314
3346
|
renderer: "fill",
|
|
3315
|
-
selector: {
|
|
3316
|
-
coerce: "number",
|
|
3317
|
-
fallback: 0,
|
|
3318
|
-
field: "intermittent",
|
|
3319
|
-
kind: "compare",
|
|
3320
|
-
operator: "ne",
|
|
3321
|
-
value: 1
|
|
3322
|
-
},
|
|
3347
|
+
selector: { field: "intermittent", kind: "compare", operator: "ne", value: true },
|
|
3323
3348
|
style: {
|
|
3324
3349
|
minZoom: 7,
|
|
3325
3350
|
opacity: zoom2.linear([
|
|
@@ -3334,14 +3359,7 @@ var blueprint = bindOfficialMapTheme(
|
|
|
3334
3359
|
placement: { above: "water.intermittent.bodies.fill" },
|
|
3335
3360
|
feature: "water",
|
|
3336
3361
|
renderer: "fill",
|
|
3337
|
-
selector: {
|
|
3338
|
-
coerce: "number",
|
|
3339
|
-
fallback: 0,
|
|
3340
|
-
field: "intermittent",
|
|
3341
|
-
kind: "compare",
|
|
3342
|
-
operator: "eq",
|
|
3343
|
-
value: 1
|
|
3344
|
-
},
|
|
3362
|
+
selector: { field: "intermittent", kind: "compare", operator: "eq", value: true },
|
|
3345
3363
|
style: {
|
|
3346
3364
|
minZoom: 9,
|
|
3347
3365
|
opacity: 0.2,
|
|
@@ -3492,7 +3510,7 @@ function streetName(minZoom, major = false) {
|
|
|
3492
3510
|
function destination(image2, minZoom, color, featured = false, role = "caption") {
|
|
3493
3511
|
const park = role === "park";
|
|
3494
3512
|
const station = role === "station";
|
|
3495
|
-
const principalPark = expr3.lte(expr3.toNumber(expr3.get(field3("
|
|
3513
|
+
const principalPark = expr3.lte(expr3.toNumber(expr3.get(field3("sizerank")), 16), 4);
|
|
3496
3514
|
return {
|
|
3497
3515
|
minZoom,
|
|
3498
3516
|
icon: {
|
|
@@ -3532,9 +3550,9 @@ function destination(image2, minZoom, color, featured = false, role = "caption")
|
|
|
3532
3550
|
}
|
|
3533
3551
|
};
|
|
3534
3552
|
}
|
|
3535
|
-
function texture(above,
|
|
3553
|
+
function texture(above, selector, pattern, minZoom, opacity) {
|
|
3536
3554
|
return renderPass3({
|
|
3537
|
-
feature,
|
|
3555
|
+
feature: "landuse",
|
|
3538
3556
|
placement: { above },
|
|
3539
3557
|
renderer: "fill",
|
|
3540
3558
|
selector,
|
|
@@ -3548,7 +3566,7 @@ function texture(above, feature, selector, pattern, minZoom, opacity) {
|
|
|
3548
3566
|
}
|
|
3549
3567
|
});
|
|
3550
3568
|
}
|
|
3551
|
-
var buildingTone = expr3.coalesce(expr3.get(field3("
|
|
3569
|
+
var buildingTone = expr3.coalesce(expr3.get(field3("tone")), "generic");
|
|
3552
3570
|
var buildingColor = expr3.match(
|
|
3553
3571
|
buildingTone,
|
|
3554
3572
|
[
|
|
@@ -3607,7 +3625,7 @@ var destinationSchedule = {
|
|
|
3607
3625
|
},
|
|
3608
3626
|
{
|
|
3609
3627
|
kind: "compare",
|
|
3610
|
-
field: "
|
|
3628
|
+
field: "filterrank",
|
|
3611
3629
|
coerce: "number",
|
|
3612
3630
|
fallback: 6,
|
|
3613
3631
|
operator: "lte",
|
|
@@ -3751,6 +3769,7 @@ var civica = bindOfficialMapTheme(
|
|
|
3751
3769
|
modules: {
|
|
3752
3770
|
land: withRenderStack3(
|
|
3753
3771
|
land3({
|
|
3772
|
+
activityAreas: { fill: { visible: false }, outline: { visible: false } },
|
|
3754
3773
|
background: { color: ink.paper },
|
|
3755
3774
|
globalLandcover: {
|
|
3756
3775
|
minZoom: 0,
|
|
@@ -3819,12 +3838,31 @@ var civica = bindOfficialMapTheme(
|
|
|
3819
3838
|
{
|
|
3820
3839
|
parkGroves: texture(
|
|
3821
3840
|
"land.landcover.urbanPark.fill",
|
|
3822
|
-
|
|
3841
|
+
// The parks and gardens the land module draws as urban parks.
|
|
3823
3842
|
{
|
|
3824
|
-
kind: "
|
|
3843
|
+
kind: "any",
|
|
3825
3844
|
selectors: [
|
|
3826
|
-
{
|
|
3827
|
-
|
|
3845
|
+
{
|
|
3846
|
+
kind: "all",
|
|
3847
|
+
selectors: [
|
|
3848
|
+
{ kind: "in", field: "class", values: ["park"] },
|
|
3849
|
+
{
|
|
3850
|
+
kind: "not",
|
|
3851
|
+
selector: {
|
|
3852
|
+
kind: "in",
|
|
3853
|
+
field: "type",
|
|
3854
|
+
values: ["recreation_ground", "village_green", "zoo"]
|
|
3855
|
+
}
|
|
3856
|
+
}
|
|
3857
|
+
]
|
|
3858
|
+
},
|
|
3859
|
+
{
|
|
3860
|
+
kind: "all",
|
|
3861
|
+
selectors: [
|
|
3862
|
+
{ kind: "in", field: "class", values: ["garden"] },
|
|
3863
|
+
{ kind: "not", selector: { kind: "in", field: "type", values: ["flowerbed"] } }
|
|
3864
|
+
]
|
|
3865
|
+
}
|
|
3828
3866
|
]
|
|
3829
3867
|
},
|
|
3830
3868
|
"civica-park-groves",
|
|
@@ -3833,23 +3871,20 @@ var civica = bindOfficialMapTheme(
|
|
|
3833
3871
|
),
|
|
3834
3872
|
woodlandGroves: texture(
|
|
3835
3873
|
"land.landcover.wood.fill",
|
|
3836
|
-
"
|
|
3837
|
-
{ kind: "in", field: "class", values: ["wood", "forest"] },
|
|
3874
|
+
{ kind: "in", field: "class", values: ["wood"] },
|
|
3838
3875
|
"civica-park-groves",
|
|
3839
3876
|
19,
|
|
3840
3877
|
0.18
|
|
3841
3878
|
),
|
|
3842
3879
|
orchardRows: texture(
|
|
3843
3880
|
"land.landcover.grass.fill",
|
|
3844
|
-
"
|
|
3845
|
-
{ kind: "in", field: "subclass", values: ["orchard", "vineyard"] },
|
|
3881
|
+
{ kind: "in", field: "class", values: ["orchard", "vineyard"] },
|
|
3846
3882
|
"civica-orchard",
|
|
3847
3883
|
19,
|
|
3848
3884
|
0.2
|
|
3849
3885
|
),
|
|
3850
3886
|
industrialHatch: texture(
|
|
3851
3887
|
"land.landuse.industrial.fill",
|
|
3852
|
-
"landuse",
|
|
3853
3888
|
{ kind: "in", field: "class", values: ["industrial"] },
|
|
3854
3889
|
"civica-industrial-hatch",
|
|
3855
3890
|
20,
|
|
@@ -3924,7 +3959,6 @@ var civica = bindOfficialMapTheme(
|
|
|
3924
3959
|
buildings: withRenderStack3(
|
|
3925
3960
|
buildings3({
|
|
3926
3961
|
mode: "flat",
|
|
3927
|
-
businessCorridor: { fill: { visible: false }, outline: { visible: false } },
|
|
3928
3962
|
flat: {
|
|
3929
3963
|
fill: {
|
|
3930
3964
|
color: buildingColor,
|
|
@@ -4278,12 +4312,12 @@ var civica = bindOfficialMapTheme(
|
|
|
4278
4312
|
selector: {
|
|
4279
4313
|
kind: "all",
|
|
4280
4314
|
selectors: [
|
|
4281
|
-
{ kind: "in", field: "
|
|
4282
|
-
{ kind: "has", field: "
|
|
4283
|
-
{ kind: "has", field: "
|
|
4315
|
+
{ kind: "in", field: "class", values: [category] },
|
|
4316
|
+
{ kind: "has", field: "filterrank" },
|
|
4317
|
+
{ kind: "has", field: "sizerank" },
|
|
4284
4318
|
{
|
|
4285
4319
|
kind: "compare",
|
|
4286
|
-
field: "
|
|
4320
|
+
field: "filterrank",
|
|
4287
4321
|
coerce: "number",
|
|
4288
4322
|
fallback: 6,
|
|
4289
4323
|
operator: "lte",
|
|
@@ -4297,7 +4331,7 @@ var civica = bindOfficialMapTheme(
|
|
|
4297
4331
|
},
|
|
4298
4332
|
{
|
|
4299
4333
|
kind: "compare",
|
|
4300
|
-
field: "
|
|
4334
|
+
field: "filterrank",
|
|
4301
4335
|
coerce: "number",
|
|
4302
4336
|
fallback: -1,
|
|
4303
4337
|
operator: "gte",
|
|
@@ -4305,7 +4339,7 @@ var civica = bindOfficialMapTheme(
|
|
|
4305
4339
|
},
|
|
4306
4340
|
{
|
|
4307
4341
|
kind: "compare",
|
|
4308
|
-
field: "
|
|
4342
|
+
field: "sizerank",
|
|
4309
4343
|
coerce: "number",
|
|
4310
4344
|
fallback: -1,
|
|
4311
4345
|
operator: "gte",
|
|
@@ -4313,7 +4347,7 @@ var civica = bindOfficialMapTheme(
|
|
|
4313
4347
|
},
|
|
4314
4348
|
{
|
|
4315
4349
|
kind: "compare",
|
|
4316
|
-
field: "
|
|
4350
|
+
field: "sizerank",
|
|
4317
4351
|
coerce: "number",
|
|
4318
4352
|
fallback: 17,
|
|
4319
4353
|
operator: "lte",
|
|
@@ -4330,14 +4364,14 @@ var civica = bindOfficialMapTheme(
|
|
|
4330
4364
|
selectors: [
|
|
4331
4365
|
{
|
|
4332
4366
|
kind: "compare",
|
|
4333
|
-
field: "
|
|
4367
|
+
field: "filterrank",
|
|
4334
4368
|
coerce: "number",
|
|
4335
4369
|
operator: "lte",
|
|
4336
4370
|
value: 1
|
|
4337
4371
|
},
|
|
4338
4372
|
{
|
|
4339
4373
|
kind: "compare",
|
|
4340
|
-
field: "
|
|
4374
|
+
field: "sizerank",
|
|
4341
4375
|
coerce: "number",
|
|
4342
4376
|
operator: "lt",
|
|
4343
4377
|
value: 16
|
|
@@ -4350,7 +4384,7 @@ var civica = bindOfficialMapTheme(
|
|
|
4350
4384
|
...category === "transport" ? [
|
|
4351
4385
|
{
|
|
4352
4386
|
kind: "not",
|
|
4353
|
-
selector: { kind: "in", field: "
|
|
4387
|
+
selector: { kind: "in", field: "type", values: ["airport"] }
|
|
4354
4388
|
},
|
|
4355
4389
|
{
|
|
4356
4390
|
kind: "step",
|
|
@@ -4358,7 +4392,7 @@ var civica = bindOfficialMapTheme(
|
|
|
4358
4392
|
kind: "not",
|
|
4359
4393
|
selector: {
|
|
4360
4394
|
kind: "in",
|
|
4361
|
-
field: "
|
|
4395
|
+
field: "type",
|
|
4362
4396
|
values: ["public_transit_facility"]
|
|
4363
4397
|
}
|
|
4364
4398
|
},
|
|
@@ -4499,6 +4533,61 @@ import {
|
|
|
4499
4533
|
withRenderStack as withRenderStack4,
|
|
4500
4534
|
zoom as zoom4
|
|
4501
4535
|
} from "@tileflow/core";
|
|
4536
|
+
|
|
4537
|
+
// src/official/world-roads.ts
|
|
4538
|
+
var worldRoadClasses = {
|
|
4539
|
+
motorway: ["motorway"],
|
|
4540
|
+
trunk: ["trunk"],
|
|
4541
|
+
primary: ["primary"],
|
|
4542
|
+
secondary: ["secondary"],
|
|
4543
|
+
tertiary: ["tertiary"],
|
|
4544
|
+
minor: ["street"],
|
|
4545
|
+
service: ["service", "busway"],
|
|
4546
|
+
track: ["track", "raceway"],
|
|
4547
|
+
pathway: ["path"],
|
|
4548
|
+
footway: ["path"],
|
|
4549
|
+
cycleway: ["path"],
|
|
4550
|
+
steps: ["path"],
|
|
4551
|
+
pedestrian: ["pedestrian"]
|
|
4552
|
+
};
|
|
4553
|
+
var worldConstructionTypes = {
|
|
4554
|
+
motorway: ["motorway", "motorway_link"],
|
|
4555
|
+
trunk: ["trunk", "trunk_link"],
|
|
4556
|
+
primary: ["primary", "primary_link"],
|
|
4557
|
+
secondary: ["secondary", "secondary_link"],
|
|
4558
|
+
tertiary: ["tertiary", "tertiary_link"],
|
|
4559
|
+
minor: ["street", "residential", "unclassified", "living_street", "road"],
|
|
4560
|
+
service: ["service", "busway"],
|
|
4561
|
+
track: ["track", "raceway"],
|
|
4562
|
+
pathway: ["path", "bridleway", "corridor"],
|
|
4563
|
+
footway: ["footway"],
|
|
4564
|
+
cycleway: ["cycleway"],
|
|
4565
|
+
steps: ["steps"],
|
|
4566
|
+
pedestrian: ["pedestrian"]
|
|
4567
|
+
};
|
|
4568
|
+
function worldConstructionSelector(...roadClasses) {
|
|
4569
|
+
return {
|
|
4570
|
+
kind: "all",
|
|
4571
|
+
selectors: [
|
|
4572
|
+
{ kind: "compare", field: "class", operator: "eq", value: "construction" },
|
|
4573
|
+
{
|
|
4574
|
+
kind: "in",
|
|
4575
|
+
field: "type",
|
|
4576
|
+
values: [...new Set(roadClasses.flatMap((roadClass) => worldConstructionTypes[roadClass]))]
|
|
4577
|
+
}
|
|
4578
|
+
]
|
|
4579
|
+
};
|
|
4580
|
+
}
|
|
4581
|
+
function worldRoadSelector(roadClasses, options = {}) {
|
|
4582
|
+
const inService = {
|
|
4583
|
+
kind: "in",
|
|
4584
|
+
field: "class",
|
|
4585
|
+
values: [...new Set(roadClasses.flatMap((roadClass) => worldRoadClasses[roadClass]))]
|
|
4586
|
+
};
|
|
4587
|
+
return options.construction ? { kind: "any", selectors: [inService, worldConstructionSelector(...roadClasses)] } : inService;
|
|
4588
|
+
}
|
|
4589
|
+
|
|
4590
|
+
// src/official/map-1777-roads.ts
|
|
4502
4591
|
var majorWidths = [
|
|
4503
4592
|
[3, 0.8],
|
|
4504
4593
|
[12, 3.2],
|
|
@@ -4570,11 +4659,6 @@ var carriageways = [
|
|
|
4570
4659
|
"service",
|
|
4571
4660
|
"track"
|
|
4572
4661
|
];
|
|
4573
|
-
var aliases = {
|
|
4574
|
-
minor: ["residential", "unclassified"],
|
|
4575
|
-
service: ["busway", "bus_guideway"],
|
|
4576
|
-
track: ["raceway"]
|
|
4577
|
-
};
|
|
4578
4662
|
var restrictedAccess = expr4.all(
|
|
4579
4663
|
expr4.has(field4("access")),
|
|
4580
4664
|
expr4.not(
|
|
@@ -4590,17 +4674,18 @@ var restrictedAccess = expr4.all(
|
|
|
4590
4674
|
)
|
|
4591
4675
|
)
|
|
4592
4676
|
);
|
|
4593
|
-
function roadSelector(
|
|
4677
|
+
function roadSelector(roads7, structure, extra = []) {
|
|
4594
4678
|
return {
|
|
4595
4679
|
kind: "all",
|
|
4596
4680
|
selectors: [
|
|
4597
4681
|
{ kind: "geometry", geometry: "line" },
|
|
4598
|
-
|
|
4599
|
-
structure === "bridge" ? { kind: "compare", field: "
|
|
4682
|
+
roads7,
|
|
4683
|
+
structure === "bridge" ? { kind: "compare", field: "structure", operator: "eq", value: "bridge" } : { kind: "not", selector: { kind: "in", field: "structure", values: ["bridge", "tunnel"] } },
|
|
4600
4684
|
...extra
|
|
4601
4685
|
]
|
|
4602
4686
|
};
|
|
4603
4687
|
}
|
|
4688
|
+
var link = { kind: "compare", field: "link", operator: "eq", value: true };
|
|
4604
4689
|
function withMap1777RoadDetail(module, stack) {
|
|
4605
4690
|
const detail = {};
|
|
4606
4691
|
for (const roadClass of carriageways) {
|
|
@@ -4614,11 +4699,8 @@ function withMap1777RoadDetail(module, stack) {
|
|
|
4614
4699
|
[
|
|
4615
4700
|
// Preserve the domain's first-match width rules, including service ways.
|
|
4616
4701
|
{ when: restrictedAccess, value: base },
|
|
4617
|
-
{
|
|
4618
|
-
|
|
4619
|
-
value: base * 1.06
|
|
4620
|
-
},
|
|
4621
|
-
{ when: expr4.eq(expr4.get(field4("ramp")), 1), value: base * 0.72 },
|
|
4702
|
+
{ when: expr4.eq(expr4.get(field4("expressway")), true), value: base * 1.06 },
|
|
4703
|
+
{ when: expr4.eq(expr4.get(field4("link")), true), value: base * 0.72 },
|
|
4622
4704
|
...roadClass === "service" ? Object.entries({
|
|
4623
4705
|
alley: 0.82,
|
|
4624
4706
|
crossover: 0.62,
|
|
@@ -4639,8 +4721,8 @@ function withMap1777RoadDetail(module, stack) {
|
|
|
4639
4721
|
...stops.slice(1)
|
|
4640
4722
|
]);
|
|
4641
4723
|
};
|
|
4642
|
-
const ordinary = [roadClass
|
|
4643
|
-
const construction =
|
|
4724
|
+
const ordinary = worldRoadSelector([roadClass]);
|
|
4725
|
+
const construction = worldConstructionSelector(roadClass);
|
|
4644
4726
|
const highway = roadClass === "motorway" || roadClass === "trunk";
|
|
4645
4727
|
for (const phase of ["casing", "fill"]) {
|
|
4646
4728
|
const paint = road.surface?.[phase];
|
|
@@ -4651,7 +4733,7 @@ function withMap1777RoadDetail(module, stack) {
|
|
|
4651
4733
|
selector: roadSelector(
|
|
4652
4734
|
ordinary,
|
|
4653
4735
|
"surface",
|
|
4654
|
-
highway && phase === "fill" ? [{ kind: "compare", field: "
|
|
4736
|
+
highway && phase === "fill" ? [{ kind: "compare", field: "link", operator: "ne", value: true }] : []
|
|
4655
4737
|
),
|
|
4656
4738
|
style: {}
|
|
4657
4739
|
});
|
|
@@ -4680,17 +4762,8 @@ function withMap1777RoadDetail(module, stack) {
|
|
|
4680
4762
|
detail[`${roadClass}-bridge-ordinary`] = refineRenderTarget2({
|
|
4681
4763
|
target: `roads.classes.${roadClass}.bridge.fill`,
|
|
4682
4764
|
renderer: "line",
|
|
4683
|
-
selector: roadSelector([
|
|
4684
|
-
{
|
|
4685
|
-
kind: "not",
|
|
4686
|
-
selector: {
|
|
4687
|
-
kind: "all",
|
|
4688
|
-
selectors: [
|
|
4689
|
-
{ kind: "in", field: "class", values: ordinary },
|
|
4690
|
-
{ kind: "compare", field: "ramp", operator: "eq", value: 1 }
|
|
4691
|
-
]
|
|
4692
|
-
}
|
|
4693
|
-
}
|
|
4765
|
+
selector: roadSelector(worldRoadSelector([roadClass], { construction: true }), "bridge", [
|
|
4766
|
+
{ kind: "not", selector: { kind: "all", selectors: [ordinary, link] } }
|
|
4694
4767
|
]),
|
|
4695
4768
|
style: {}
|
|
4696
4769
|
});
|
|
@@ -4700,9 +4773,7 @@ function withMap1777RoadDetail(module, stack) {
|
|
|
4700
4773
|
renderer: "line",
|
|
4701
4774
|
// Receiving carriageways cover the end of a link in the same band.
|
|
4702
4775
|
placement: { below: `roads.classes.track.${structure}.fill` },
|
|
4703
|
-
selector: roadSelector(ordinary, structure, [
|
|
4704
|
-
{ kind: "compare", field: "ramp", operator: "eq", value: 1 }
|
|
4705
|
-
]),
|
|
4776
|
+
selector: roadSelector(ordinary, structure, [link]),
|
|
4706
4777
|
style: {
|
|
4707
4778
|
...fill,
|
|
4708
4779
|
width: width(0),
|
|
@@ -4712,7 +4783,7 @@ function withMap1777RoadDetail(module, stack) {
|
|
|
4712
4783
|
[
|
|
4713
4784
|
{ when: restrictedAccess, value: 0.9 },
|
|
4714
4785
|
{ when: expr4.eq(expr4.get(field4("surface")), "unpaved"), value: 0.82 },
|
|
4715
|
-
{ when: expr4.eq(expr4.
|
|
4786
|
+
{ when: expr4.eq(expr4.get(field4("indoor")), true), value: 0.72 }
|
|
4716
4787
|
],
|
|
4717
4788
|
0.94
|
|
4718
4789
|
)
|
|
@@ -4992,14 +5063,11 @@ function map1777RoadStyle(roadClass, fillColor, casingColor, minZoom, options =
|
|
|
4992
5063
|
}
|
|
4993
5064
|
var map1777BuildingHeight = expr5.max(
|
|
4994
5065
|
0,
|
|
4995
|
-
expr5.toNumber(expr5.coalesce(expr5.get(field5("
|
|
5066
|
+
expr5.toNumber(expr5.coalesce(expr5.get(field5("height")), 5), 5)
|
|
4996
5067
|
);
|
|
4997
5068
|
var map1777BuildingBase = expr5.max(
|
|
4998
5069
|
0,
|
|
4999
|
-
expr5.min(
|
|
5000
|
-
expr5.toNumber(expr5.coalesce(expr5.get(field5("renderMinHeight")), 0), 0),
|
|
5001
|
-
map1777BuildingHeight
|
|
5002
|
-
)
|
|
5070
|
+
expr5.min(expr5.toNumber(expr5.coalesce(expr5.get(field5("minHeight")), 0), 0), map1777BuildingHeight)
|
|
5003
5071
|
);
|
|
5004
5072
|
function map1777PathStyle(roadClass, color, minZoom, dash) {
|
|
5005
5073
|
const style = map1777RoadStyle(roadClass, color, map1777Palette.roadCasing, minZoom, {
|
|
@@ -5060,9 +5128,9 @@ var map1777PathLabel = {
|
|
|
5060
5128
|
])
|
|
5061
5129
|
}
|
|
5062
5130
|
};
|
|
5063
|
-
function map1777StreetName(style,
|
|
5131
|
+
function map1777StreetName(style, roadClasses) {
|
|
5064
5132
|
return renderPass5({
|
|
5065
|
-
feature: "
|
|
5133
|
+
feature: "roadLabel",
|
|
5066
5134
|
renderer: "symbol",
|
|
5067
5135
|
requirements: ["roads"],
|
|
5068
5136
|
placement: "below-buildings",
|
|
@@ -5070,8 +5138,7 @@ function map1777StreetName(style, classes, subclasses) {
|
|
|
5070
5138
|
kind: "all",
|
|
5071
5139
|
selectors: [
|
|
5072
5140
|
{ field: "name", kind: "has" },
|
|
5073
|
-
|
|
5074
|
-
...subclasses ? [{ field: "subclass", kind: "in", values: subclasses }] : []
|
|
5141
|
+
worldRoadSelector(roadClasses, { construction: true })
|
|
5075
5142
|
]
|
|
5076
5143
|
},
|
|
5077
5144
|
style: {
|
|
@@ -5081,29 +5148,49 @@ function map1777StreetName(style, classes, subclasses) {
|
|
|
5081
5148
|
field: expr5.coalesce(
|
|
5082
5149
|
expr5.get(field5("name")),
|
|
5083
5150
|
expr5.get(field5("nameLatin")),
|
|
5084
|
-
expr5.get(field5("
|
|
5151
|
+
expr5.get(field5("nameEn"))
|
|
5085
5152
|
)
|
|
5086
5153
|
}
|
|
5087
5154
|
}
|
|
5088
5155
|
});
|
|
5089
5156
|
}
|
|
5090
5157
|
var map1777FieldVariant = expr5.modulo(expr5.toNumber(expr5.id(), 0), 3);
|
|
5091
|
-
function
|
|
5092
|
-
|
|
5093
|
-
|
|
5094
|
-
|
|
5095
|
-
|
|
5096
|
-
|
|
5097
|
-
|
|
5098
|
-
|
|
5099
|
-
|
|
5100
|
-
|
|
5158
|
+
function groundClass2(...classes) {
|
|
5159
|
+
return { field: "class", kind: "in", values: classes };
|
|
5160
|
+
}
|
|
5161
|
+
var urbanParkGround2 = {
|
|
5162
|
+
kind: "any",
|
|
5163
|
+
selectors: [
|
|
5164
|
+
{
|
|
5165
|
+
kind: "all",
|
|
5166
|
+
selectors: [
|
|
5167
|
+
groundClass2("park"),
|
|
5168
|
+
{
|
|
5169
|
+
kind: "not",
|
|
5170
|
+
selector: {
|
|
5171
|
+
field: "type",
|
|
5172
|
+
kind: "in",
|
|
5173
|
+
values: ["recreation_ground", "village_green", "zoo"]
|
|
5174
|
+
}
|
|
5175
|
+
}
|
|
5176
|
+
]
|
|
5177
|
+
},
|
|
5178
|
+
{
|
|
5179
|
+
kind: "all",
|
|
5180
|
+
selectors: [
|
|
5181
|
+
groundClass2("garden"),
|
|
5182
|
+
{ kind: "not", selector: { field: "type", kind: "in", values: ["flowerbed"] } }
|
|
5183
|
+
]
|
|
5184
|
+
}
|
|
5185
|
+
]
|
|
5186
|
+
};
|
|
5187
|
+
function landcoverPattern2(target, pattern, ground, options = {}) {
|
|
5101
5188
|
const minZoom = options.minZoom ?? 9;
|
|
5102
5189
|
return renderPass5({
|
|
5103
5190
|
placement: { above: target },
|
|
5104
|
-
feature: "
|
|
5191
|
+
feature: options.feature ?? "landuse",
|
|
5105
5192
|
renderer: "fill",
|
|
5106
|
-
selector,
|
|
5193
|
+
selector: ground,
|
|
5107
5194
|
style: {
|
|
5108
5195
|
minZoom,
|
|
5109
5196
|
opacity: zoom5.linear([
|
|
@@ -5162,8 +5249,6 @@ var map1777Theme = defineOfficialTheme({
|
|
|
5162
5249
|
},
|
|
5163
5250
|
buildings: {
|
|
5164
5251
|
active: map1777Palette.buildingActive,
|
|
5165
|
-
businessCorridor: map1777Palette.building,
|
|
5166
|
-
businessCorridorOutline: map1777Palette.buildingOutline,
|
|
5167
5252
|
civic: "#AF4C42",
|
|
5168
5253
|
commercial: "#C25B4D",
|
|
5169
5254
|
destination: map1777Palette.buildingActive,
|
|
@@ -5212,6 +5297,8 @@ var map1777Theme = defineOfficialTheme({
|
|
|
5212
5297
|
wood: map1777Palette.wood
|
|
5213
5298
|
},
|
|
5214
5299
|
landuse: {
|
|
5300
|
+
activity: map1777Palette.building,
|
|
5301
|
+
activityOutline: map1777Palette.buildingOutline,
|
|
5215
5302
|
cemetery: "#BCC99D",
|
|
5216
5303
|
civic: "#E8DCC3",
|
|
5217
5304
|
commercial: "#E5D4BC",
|
|
@@ -5372,10 +5459,6 @@ var map1777Day = bindOfficialMapTheme(
|
|
|
5372
5459
|
edgeColor: map1777Palette.buildingOutline,
|
|
5373
5460
|
colorVariation: 0.035
|
|
5374
5461
|
},
|
|
5375
|
-
businessCorridor: {
|
|
5376
|
-
fill: { visible: false },
|
|
5377
|
-
outline: { visible: false }
|
|
5378
|
-
},
|
|
5379
5462
|
flat: {
|
|
5380
5463
|
fill: {
|
|
5381
5464
|
color: map1777Palette.building,
|
|
@@ -5430,14 +5513,8 @@ var map1777Day = bindOfficialMapTheme(
|
|
|
5430
5513
|
placement: { above: "buildings.flat.outline" },
|
|
5431
5514
|
feature: "building",
|
|
5432
5515
|
renderer: "extrusion",
|
|
5433
|
-
|
|
5434
|
-
|
|
5435
|
-
selectors: [
|
|
5436
|
-
{ field: "hide3d", kind: "compare", operator: "ne", value: true },
|
|
5437
|
-
{ field: "hide3d", kind: "compare", operator: "ne", value: 1 },
|
|
5438
|
-
{ field: "hide3d", kind: "compare", operator: "ne", value: "1" }
|
|
5439
|
-
]
|
|
5440
|
-
},
|
|
5516
|
+
// A footprint whose parts draw it in 3D says `extrude: false`.
|
|
5517
|
+
selector: { field: "extrude", kind: "compare", operator: "ne", value: false },
|
|
5441
5518
|
style: {
|
|
5442
5519
|
base: map1777BuildingBase,
|
|
5443
5520
|
color: map1777Palette.building,
|
|
@@ -5613,51 +5690,46 @@ var map1777Day = bindOfficialMapTheme(
|
|
|
5613
5690
|
{
|
|
5614
5691
|
// Own these ground labels here: replacing the roads module must not
|
|
5615
5692
|
// leave refinements pointing at optional road-label contributions.
|
|
5616
|
-
roadPaths: map1777StreetName(
|
|
5617
|
-
|
|
5618
|
-
|
|
5619
|
-
|
|
5620
|
-
|
|
5621
|
-
|
|
5622
|
-
"track",
|
|
5623
|
-
"raceway",
|
|
5624
|
-
"track_construction",
|
|
5625
|
-
"raceway_construction"
|
|
5693
|
+
roadPaths: map1777StreetName(map1777PathLabel, [
|
|
5694
|
+
"pathway",
|
|
5695
|
+
"footway",
|
|
5696
|
+
"cycleway",
|
|
5697
|
+
"steps",
|
|
5698
|
+
"pedestrian"
|
|
5626
5699
|
]),
|
|
5700
|
+
roadTrack: map1777StreetName(map1777PathLabel, ["track"]),
|
|
5627
5701
|
roadService: map1777StreetName(
|
|
5628
5702
|
{ ...map1777RoadLabel, minZoom: 16, priority: 48, spacing: 340 },
|
|
5629
|
-
["service"
|
|
5703
|
+
["service"]
|
|
5630
5704
|
),
|
|
5631
|
-
roadMinor: map1777StreetName({ ...map1777RoadLabel, minZoom: 14 }, [
|
|
5632
|
-
"minor",
|
|
5633
|
-
"residential",
|
|
5634
|
-
"unclassified",
|
|
5635
|
-
"minor_construction"
|
|
5636
|
-
]),
|
|
5705
|
+
roadMinor: map1777StreetName({ ...map1777RoadLabel, minZoom: 14 }, ["minor"]),
|
|
5637
5706
|
roadTertiary: map1777StreetName({ ...map1777RoadLabel, minZoom: 12, priority: 72 }, [
|
|
5638
|
-
"tertiary"
|
|
5639
|
-
"tertiary_construction"
|
|
5707
|
+
"tertiary"
|
|
5640
5708
|
]),
|
|
5641
5709
|
roadSecondary: map1777StreetName(
|
|
5642
5710
|
{ ...map1777RoadLabel, minZoom: 11, priority: 80, spacing: 360 },
|
|
5643
|
-
["secondary"
|
|
5711
|
+
["secondary"]
|
|
5644
5712
|
),
|
|
5645
5713
|
roadPrimary: map1777StreetName(
|
|
5646
5714
|
{ ...map1777RoadLabel, minZoom: 10, priority: 86, spacing: 360 },
|
|
5647
|
-
["primary"
|
|
5715
|
+
["primary"]
|
|
5648
5716
|
),
|
|
5649
5717
|
roadTrunk: map1777StreetName(
|
|
5650
5718
|
{ ...map1777RoadLabel, minZoom: 9, priority: 90, spacing: 400 },
|
|
5651
|
-
["trunk"
|
|
5719
|
+
["trunk"]
|
|
5652
5720
|
),
|
|
5653
5721
|
roadMotorway: map1777StreetName(
|
|
5654
5722
|
{ ...map1777RoadLabel, minZoom: 8, priority: 94, spacing: 400 },
|
|
5655
|
-
["motorway"
|
|
5723
|
+
["motorway"]
|
|
5656
5724
|
)
|
|
5657
5725
|
}
|
|
5658
5726
|
),
|
|
5659
5727
|
land: withRenderStack5(
|
|
5660
5728
|
land4({
|
|
5729
|
+
activityAreas: {
|
|
5730
|
+
fill: { visible: false },
|
|
5731
|
+
outline: { visible: false }
|
|
5732
|
+
},
|
|
5661
5733
|
background: { opacity: 1, pattern: "map-1777-paper-grain" },
|
|
5662
5734
|
globalLandcover: {
|
|
5663
5735
|
color: expr5.match(
|
|
@@ -5768,36 +5840,37 @@ var map1777Day = bindOfficialMapTheme(
|
|
|
5768
5840
|
],
|
|
5769
5841
|
token3.image("land.field.hatch")
|
|
5770
5842
|
),
|
|
5771
|
-
|
|
5843
|
+
groundClass2("farmland", "orchard", "vineyard"),
|
|
5772
5844
|
{ minZoom: 8, opacity: 0.82 }
|
|
5773
5845
|
),
|
|
5774
|
-
heathTexture: landcoverPattern2(
|
|
5775
|
-
|
|
5776
|
-
|
|
5777
|
-
|
|
5778
|
-
|
|
5846
|
+
heathTexture: landcoverPattern2(
|
|
5847
|
+
"land.landcover.scrub.fill",
|
|
5848
|
+
"map-1777-heath",
|
|
5849
|
+
groundClass2("scrub"),
|
|
5850
|
+
{ minZoom: 9, opacity: 0.72 }
|
|
5851
|
+
),
|
|
5779
5852
|
orchardTexture: landcoverPattern2(
|
|
5780
5853
|
"land.landcover.urbanPark.fill",
|
|
5781
5854
|
"map-1777-orchard",
|
|
5782
|
-
|
|
5783
|
-
{ minZoom: 11, opacity: 0.64
|
|
5855
|
+
urbanParkGround2,
|
|
5856
|
+
{ minZoom: 11, opacity: 0.64 }
|
|
5784
5857
|
),
|
|
5785
5858
|
sandTexture: landcoverPattern2(
|
|
5786
5859
|
"land.landcover.sand.fill",
|
|
5787
5860
|
"map-1777-sand",
|
|
5788
|
-
|
|
5861
|
+
groundClass2("sand"),
|
|
5789
5862
|
{ minZoom: 9, opacity: 0.72 }
|
|
5790
5863
|
),
|
|
5791
5864
|
wetlandTexture: landcoverPattern2(
|
|
5792
5865
|
"land.landcover.wetland.fill",
|
|
5793
5866
|
"map-1777-wetland",
|
|
5794
|
-
|
|
5795
|
-
{ minZoom: 9, opacity: 0.78 }
|
|
5867
|
+
groundClass2("wetland"),
|
|
5868
|
+
{ feature: "landuseOverlay", minZoom: 9, opacity: 0.78 }
|
|
5796
5869
|
),
|
|
5797
5870
|
woodTexture: landcoverPattern2(
|
|
5798
5871
|
"land.landcover.wood.fill",
|
|
5799
5872
|
"map-1777-woodland",
|
|
5800
|
-
|
|
5873
|
+
groundClass2("wood"),
|
|
5801
5874
|
{ minZoom: 8, opacity: 0.82 }
|
|
5802
5875
|
),
|
|
5803
5876
|
residentialTexture: landusePattern2(
|
|
@@ -6146,14 +6219,7 @@ var map1777Day = bindOfficialMapTheme(
|
|
|
6146
6219
|
placement: { below: "water.bodies.outline" },
|
|
6147
6220
|
feature: "water",
|
|
6148
6221
|
renderer: "line",
|
|
6149
|
-
selector: {
|
|
6150
|
-
coerce: "number",
|
|
6151
|
-
fallback: 0,
|
|
6152
|
-
field: "intermittent",
|
|
6153
|
-
kind: "compare",
|
|
6154
|
-
operator: "ne",
|
|
6155
|
-
value: 1
|
|
6156
|
-
},
|
|
6222
|
+
selector: { field: "intermittent", kind: "compare", operator: "ne", value: true },
|
|
6157
6223
|
style: {
|
|
6158
6224
|
color: map1777Palette.waterBank,
|
|
6159
6225
|
minZoom: 9,
|
|
@@ -6171,14 +6237,7 @@ var map1777Day = bindOfficialMapTheme(
|
|
|
6171
6237
|
placement: { above: "water.bodies.fill" },
|
|
6172
6238
|
feature: "water",
|
|
6173
6239
|
renderer: "fill",
|
|
6174
|
-
selector: {
|
|
6175
|
-
coerce: "number",
|
|
6176
|
-
fallback: 0,
|
|
6177
|
-
field: "intermittent",
|
|
6178
|
-
kind: "compare",
|
|
6179
|
-
operator: "ne",
|
|
6180
|
-
value: 1
|
|
6181
|
-
},
|
|
6240
|
+
selector: { field: "intermittent", kind: "compare", operator: "ne", value: true },
|
|
6182
6241
|
style: {
|
|
6183
6242
|
minZoom: 7,
|
|
6184
6243
|
opacity: zoom5.linear([
|
|
@@ -6193,14 +6252,7 @@ var map1777Day = bindOfficialMapTheme(
|
|
|
6193
6252
|
placement: { above: "water.intermittent.bodies.fill" },
|
|
6194
6253
|
feature: "water",
|
|
6195
6254
|
renderer: "fill",
|
|
6196
|
-
selector: {
|
|
6197
|
-
coerce: "number",
|
|
6198
|
-
fallback: 0,
|
|
6199
|
-
field: "intermittent",
|
|
6200
|
-
kind: "compare",
|
|
6201
|
-
operator: "eq",
|
|
6202
|
-
value: 1
|
|
6203
|
-
},
|
|
6255
|
+
selector: { field: "intermittent", kind: "compare", operator: "eq", value: true },
|
|
6204
6256
|
style: {
|
|
6205
6257
|
minZoom: 9,
|
|
6206
6258
|
opacity: 0.2,
|
|
@@ -6309,8 +6361,6 @@ function createSiegfriedTheme(id, colorScheme, palette) {
|
|
|
6309
6361
|
},
|
|
6310
6362
|
buildings: {
|
|
6311
6363
|
active: palette.ink,
|
|
6312
|
-
businessCorridor: palette.paper,
|
|
6313
|
-
businessCorridorOutline: palette.ink,
|
|
6314
6364
|
civic: palette.ink,
|
|
6315
6365
|
commercial: palette.ink,
|
|
6316
6366
|
destination: palette.ink,
|
|
@@ -6359,6 +6409,8 @@ function createSiegfriedTheme(id, colorScheme, palette) {
|
|
|
6359
6409
|
wood: palette.paper
|
|
6360
6410
|
},
|
|
6361
6411
|
landuse: {
|
|
6412
|
+
activity: palette.paper,
|
|
6413
|
+
activityOutline: palette.ink,
|
|
6362
6414
|
cemetery: palette.paper,
|
|
6363
6415
|
civic: palette.paper,
|
|
6364
6416
|
commercial: palette.paper,
|
|
@@ -6579,13 +6631,13 @@ function landcoverFilter(classes, options = {}) {
|
|
|
6579
6631
|
values: classes
|
|
6580
6632
|
};
|
|
6581
6633
|
const selectors = [classSelector];
|
|
6582
|
-
if (options.
|
|
6583
|
-
selectors.push({ field: "
|
|
6634
|
+
if (options.types) {
|
|
6635
|
+
selectors.push({ field: "type", kind: "in", values: options.types });
|
|
6584
6636
|
}
|
|
6585
|
-
if (options.
|
|
6637
|
+
if (options.excludeTypes) {
|
|
6586
6638
|
selectors.push({
|
|
6587
|
-
branches: [{ result: false, values: options.
|
|
6588
|
-
field: "
|
|
6639
|
+
branches: [{ result: false, values: options.excludeTypes }],
|
|
6640
|
+
field: "type",
|
|
6589
6641
|
kind: "match",
|
|
6590
6642
|
otherwise: true
|
|
6591
6643
|
});
|
|
@@ -6596,7 +6648,7 @@ function landcoverPattern3(target, pattern, classes, options = {}) {
|
|
|
6596
6648
|
const minZoom = options.minZoom ?? 9;
|
|
6597
6649
|
return renderPass6({
|
|
6598
6650
|
placement: { above: target },
|
|
6599
|
-
feature: "
|
|
6651
|
+
feature: options.feature ?? "landuse",
|
|
6600
6652
|
renderer: "fill",
|
|
6601
6653
|
selector: landcoverFilter(classes, options),
|
|
6602
6654
|
style: {
|
|
@@ -6612,7 +6664,7 @@ function landcoverPattern3(target, pattern, classes, options = {}) {
|
|
|
6612
6664
|
function postContourLandcoverPattern(target, pattern, classes, options) {
|
|
6613
6665
|
return renderPass6({
|
|
6614
6666
|
placement: { above: target },
|
|
6615
|
-
feature: "
|
|
6667
|
+
feature: "landuse",
|
|
6616
6668
|
renderer: "fill",
|
|
6617
6669
|
requirements: ["land"],
|
|
6618
6670
|
selector: landcoverFilter(classes, options),
|
|
@@ -6722,10 +6774,6 @@ var siegfried = bindOfficialMapTheme(
|
|
|
6722
6774
|
}
|
|
6723
6775
|
}),
|
|
6724
6776
|
buildings: buildings5({
|
|
6725
|
-
businessCorridor: {
|
|
6726
|
-
fill: { visible: false },
|
|
6727
|
-
outline: { visible: false }
|
|
6728
|
-
},
|
|
6729
6777
|
flat: {
|
|
6730
6778
|
fill: {
|
|
6731
6779
|
color: siegfriedPalette.ink,
|
|
@@ -6967,6 +7015,10 @@ var siegfried = bindOfficialMapTheme(
|
|
|
6967
7015
|
}),
|
|
6968
7016
|
land: withRenderStack6(
|
|
6969
7017
|
land5({
|
|
7018
|
+
activityAreas: {
|
|
7019
|
+
fill: { visible: false },
|
|
7020
|
+
outline: { visible: false }
|
|
7021
|
+
},
|
|
6970
7022
|
background: { opacity: 1, pattern: siegfriedVisual.pattern["paper-grain"] },
|
|
6971
7023
|
globalLandcover: { visible: false },
|
|
6972
7024
|
landcover: {
|
|
@@ -7022,26 +7074,26 @@ var siegfried = bindOfficialMapTheme(
|
|
|
7022
7074
|
forestPattern: landcoverPattern3(
|
|
7023
7075
|
"land.landcover.wood.outline",
|
|
7024
7076
|
siegfriedVisual.pattern.forest,
|
|
7025
|
-
["wood"
|
|
7077
|
+
["wood"],
|
|
7026
7078
|
{ minZoom: 8, opacity: 0.84 }
|
|
7027
7079
|
),
|
|
7028
7080
|
gravelPattern: landcoverPattern3(
|
|
7029
7081
|
"land.landcover.sand.fill",
|
|
7030
7082
|
siegfriedVisual.pattern.gravel,
|
|
7031
|
-
["sand"
|
|
7083
|
+
["sand"],
|
|
7032
7084
|
{ minZoom: 10, opacity: 0.64 }
|
|
7033
7085
|
),
|
|
7034
7086
|
orchardPattern: landcoverPattern3(
|
|
7035
7087
|
"land.landcover.urbanPark.fill",
|
|
7036
7088
|
siegfriedVisual.pattern.orchard,
|
|
7037
|
-
["
|
|
7038
|
-
{ minZoom: 12, opacity: 0.62
|
|
7089
|
+
["garden"],
|
|
7090
|
+
{ excludeTypes: ["flowerbed"], minZoom: 12, opacity: 0.62 }
|
|
7039
7091
|
),
|
|
7040
7092
|
wetlandPattern: landcoverPattern3(
|
|
7041
7093
|
"land.landcover.wetland.fill",
|
|
7042
7094
|
siegfriedVisual.pattern.wetland,
|
|
7043
7095
|
["wetland"],
|
|
7044
|
-
{ minZoom: 9, opacity: 0.8 }
|
|
7096
|
+
{ feature: "landuseOverlay", minZoom: 9, opacity: 0.8 }
|
|
7045
7097
|
)
|
|
7046
7098
|
}
|
|
7047
7099
|
),
|
|
@@ -7275,7 +7327,7 @@ var siegfried = bindOfficialMapTheme(
|
|
|
7275
7327
|
{
|
|
7276
7328
|
rockMask: renderPass6({
|
|
7277
7329
|
placement: { below: "water.bodies.fill" },
|
|
7278
|
-
feature: "
|
|
7330
|
+
feature: "landuse",
|
|
7279
7331
|
renderer: "fill",
|
|
7280
7332
|
requirements: ["land"],
|
|
7281
7333
|
selector: { field: "class", kind: "in", values: ["rock"] },
|
|
@@ -7290,7 +7342,7 @@ var siegfried = bindOfficialMapTheme(
|
|
|
7290
7342
|
siegfriedVisual.pattern.rock,
|
|
7291
7343
|
["rock"],
|
|
7292
7344
|
{
|
|
7293
|
-
|
|
7345
|
+
excludeTypes: ["scree", "talus"],
|
|
7294
7346
|
minZoom: 9,
|
|
7295
7347
|
opacity: 0.9
|
|
7296
7348
|
}
|
|
@@ -7302,23 +7354,23 @@ var siegfried = bindOfficialMapTheme(
|
|
|
7302
7354
|
{
|
|
7303
7355
|
minZoom: 10,
|
|
7304
7356
|
opacity: 0.82,
|
|
7305
|
-
|
|
7357
|
+
types: ["scree", "talus"]
|
|
7306
7358
|
}
|
|
7307
7359
|
),
|
|
7308
7360
|
glacierMask: renderPass6({
|
|
7309
7361
|
placement: { below: "water.bodies.fill" },
|
|
7310
|
-
feature: "
|
|
7362
|
+
feature: "landuse",
|
|
7311
7363
|
renderer: "fill",
|
|
7312
7364
|
requirements: ["land"],
|
|
7313
|
-
selector: { field: "class", kind: "in", values: ["ice"
|
|
7365
|
+
selector: { field: "class", kind: "in", values: ["ice"] },
|
|
7314
7366
|
style: { color: siegfriedPalette.paper, minZoom: 7, opacity: 0.98 }
|
|
7315
7367
|
}),
|
|
7316
7368
|
glacierPattern: renderPass6({
|
|
7317
7369
|
placement: { above: "water.render.glacierMask" },
|
|
7318
|
-
feature: "
|
|
7370
|
+
feature: "landuse",
|
|
7319
7371
|
renderer: "fill",
|
|
7320
7372
|
requirements: ["land"],
|
|
7321
|
-
selector: { field: "class", kind: "in", values: ["ice"
|
|
7373
|
+
selector: { field: "class", kind: "in", values: ["ice"] },
|
|
7322
7374
|
style: {
|
|
7323
7375
|
minZoom: 8,
|
|
7324
7376
|
opacity: zoom6.linear([
|
|
@@ -7331,10 +7383,10 @@ var siegfried = bindOfficialMapTheme(
|
|
|
7331
7383
|
}),
|
|
7332
7384
|
glacierOutline: renderPass6({
|
|
7333
7385
|
placement: { above: "water.render.glacierPattern" },
|
|
7334
|
-
feature: "
|
|
7386
|
+
feature: "landuse",
|
|
7335
7387
|
renderer: "line",
|
|
7336
7388
|
requirements: ["land"],
|
|
7337
|
-
selector: { field: "class", kind: "in", values: ["ice"
|
|
7389
|
+
selector: { field: "class", kind: "in", values: ["ice"] },
|
|
7338
7390
|
style: {
|
|
7339
7391
|
cap: "round",
|
|
7340
7392
|
color: siegfriedPalette.blue,
|
|
@@ -7348,14 +7400,7 @@ var siegfried = bindOfficialMapTheme(
|
|
|
7348
7400
|
placement: { above: "water.bodies.outline" },
|
|
7349
7401
|
feature: "water",
|
|
7350
7402
|
renderer: "fill",
|
|
7351
|
-
selector: {
|
|
7352
|
-
coerce: "number",
|
|
7353
|
-
fallback: 0,
|
|
7354
|
-
field: "intermittent",
|
|
7355
|
-
kind: "compare",
|
|
7356
|
-
operator: "ne",
|
|
7357
|
-
value: 1
|
|
7358
|
-
},
|
|
7403
|
+
selector: { field: "intermittent", kind: "compare", operator: "ne", value: true },
|
|
7359
7404
|
style: {
|
|
7360
7405
|
minZoom: 7,
|
|
7361
7406
|
opacity: zoom6.linear([
|
|
@@ -7370,14 +7415,7 @@ var siegfried = bindOfficialMapTheme(
|
|
|
7370
7415
|
placement: { above: "water.intermittent.bodies.fill" },
|
|
7371
7416
|
feature: "water",
|
|
7372
7417
|
renderer: "fill",
|
|
7373
|
-
selector: {
|
|
7374
|
-
coerce: "number",
|
|
7375
|
-
fallback: 0,
|
|
7376
|
-
field: "intermittent",
|
|
7377
|
-
kind: "compare",
|
|
7378
|
-
operator: "eq",
|
|
7379
|
-
value: 1
|
|
7380
|
-
},
|
|
7418
|
+
selector: { field: "intermittent", kind: "compare", operator: "eq", value: true },
|
|
7381
7419
|
style: {
|
|
7382
7420
|
minZoom: 9,
|
|
7383
7421
|
opacity: 0.22,
|
|
@@ -7797,6 +7835,8 @@ var soundings = bindOfficialMapTheme(
|
|
|
7797
7835
|
water: "all"
|
|
7798
7836
|
}),
|
|
7799
7837
|
land: land6({
|
|
7838
|
+
// Buildings are off, and so are the areas where their activity concentrates.
|
|
7839
|
+
activityAreas: { fill: { visible: false }, outline: { visible: false } },
|
|
7800
7840
|
background: { opacity: 1, pattern: "soundings-paper-grain" },
|
|
7801
7841
|
globalLandcover: {
|
|
7802
7842
|
color: expr7.match(
|
|
@@ -7913,7 +7953,7 @@ var soundings = bindOfficialMapTheme(
|
|
|
7913
7953
|
// Ferry names are operational context, not a recommended track.
|
|
7914
7954
|
ferryLabels: renderPass7({
|
|
7915
7955
|
placement: { above: "transit.ferry" },
|
|
7916
|
-
feature: "
|
|
7956
|
+
feature: "roadLabel",
|
|
7917
7957
|
renderer: "symbol",
|
|
7918
7958
|
selector: {
|
|
7919
7959
|
kind: "all",
|
|
@@ -7924,7 +7964,7 @@ var soundings = bindOfficialMapTheme(
|
|
|
7924
7964
|
kind: "any",
|
|
7925
7965
|
selectors: [
|
|
7926
7966
|
{ field: "class", kind: "compare", operator: "eq", value: "ferry" },
|
|
7927
|
-
{ field: "
|
|
7967
|
+
{ field: "type", kind: "compare", operator: "eq", value: "ferry" }
|
|
7928
7968
|
]
|
|
7929
7969
|
}
|
|
7930
7970
|
]
|
|
@@ -8108,7 +8148,7 @@ var soundings = bindOfficialMapTheme(
|
|
|
8108
8148
|
kind: "any",
|
|
8109
8149
|
selectors: [
|
|
8110
8150
|
{ field: "class", kind: "compare", operator: "eq", value: "pier" },
|
|
8111
|
-
{ field: "
|
|
8151
|
+
{ field: "type", kind: "compare", operator: "eq", value: "pier" }
|
|
8112
8152
|
]
|
|
8113
8153
|
},
|
|
8114
8154
|
style: {
|
|
@@ -8136,7 +8176,7 @@ var soundings = bindOfficialMapTheme(
|
|
|
8136
8176
|
kind: "any",
|
|
8137
8177
|
selectors: [
|
|
8138
8178
|
{ field: "class", kind: "compare", operator: "eq", value: "pier" },
|
|
8139
|
-
{ field: "
|
|
8179
|
+
{ field: "type", kind: "compare", operator: "eq", value: "pier" }
|
|
8140
8180
|
]
|
|
8141
8181
|
},
|
|
8142
8182
|
style: {
|
|
@@ -8159,14 +8199,7 @@ var soundings = bindOfficialMapTheme(
|
|
|
8159
8199
|
placement: { above: "water.bodies.fill" },
|
|
8160
8200
|
feature: "water",
|
|
8161
8201
|
renderer: "fill",
|
|
8162
|
-
selector: {
|
|
8163
|
-
coerce: "number",
|
|
8164
|
-
fallback: 0,
|
|
8165
|
-
field: "intermittent",
|
|
8166
|
-
kind: "compare",
|
|
8167
|
-
operator: "ne",
|
|
8168
|
-
value: 1
|
|
8169
|
-
},
|
|
8202
|
+
selector: { field: "intermittent", kind: "compare", operator: "ne", value: true },
|
|
8170
8203
|
style: {
|
|
8171
8204
|
minZoom: 7,
|
|
8172
8205
|
opacity: zoom7.linear([
|
|
@@ -8181,14 +8214,7 @@ var soundings = bindOfficialMapTheme(
|
|
|
8181
8214
|
placement: { above: "water.intermittent.bodies.fill" },
|
|
8182
8215
|
feature: "water",
|
|
8183
8216
|
renderer: "fill",
|
|
8184
|
-
selector: {
|
|
8185
|
-
coerce: "number",
|
|
8186
|
-
fallback: 0,
|
|
8187
|
-
field: "intermittent",
|
|
8188
|
-
kind: "compare",
|
|
8189
|
-
operator: "eq",
|
|
8190
|
-
value: 1
|
|
8191
|
-
},
|
|
8217
|
+
selector: { field: "intermittent", kind: "compare", operator: "eq", value: true },
|
|
8192
8218
|
style: { minZoom: 9, opacity: 0.16, pattern: "soundings-water-dots" }
|
|
8193
8219
|
})
|
|
8194
8220
|
}
|
|
@@ -8299,6 +8325,12 @@ import {
|
|
|
8299
8325
|
zoom as zoom11
|
|
8300
8326
|
} from "@tileflow/core";
|
|
8301
8327
|
|
|
8328
|
+
// src/official/streets-climate.ts
|
|
8329
|
+
var streetsClimateImage = Object.freeze({
|
|
8330
|
+
url: "https://api.tileflow.dev/base/2a01d3fc884ee9aea013c506a7e4625b5d869e45f1c467e63cc0829f2e7314a1/images/streets-climate-v1.png",
|
|
8331
|
+
sha256: "bede2213b0ba74d77111fe182458ee30d219b989a9c11fe5ce121de1c549dfc4"
|
|
8332
|
+
});
|
|
8333
|
+
|
|
8302
8334
|
// src/official/streets-ground-and-access.ts
|
|
8303
8335
|
import { expr as expr9, field as field8, renderPass as renderPass8, token as token5, zoom as zoom9 } from "@tileflow/core";
|
|
8304
8336
|
var streetsDayGroundColors = {
|
|
@@ -8321,12 +8353,13 @@ var streetsDayGroundColors = {
|
|
|
8321
8353
|
"roads.accessOverview": "#D7D3CE"
|
|
8322
8354
|
};
|
|
8323
8355
|
var streetsAgriculturalColor = expr9.match(
|
|
8324
|
-
expr9.get(field8("
|
|
8325
|
-
[
|
|
8326
|
-
|
|
8327
|
-
|
|
8328
|
-
|
|
8329
|
-
|
|
8356
|
+
expr9.get(field8("class")),
|
|
8357
|
+
[{ labels: "orchard", value: token5.color("landcover.orchard") }],
|
|
8358
|
+
expr9.match(
|
|
8359
|
+
expr9.get(field8("type")),
|
|
8360
|
+
[{ labels: "plant_nursery", value: token5.color("landcover.nursery") }],
|
|
8361
|
+
token5.color("landcover.farmland")
|
|
8362
|
+
)
|
|
8330
8363
|
);
|
|
8331
8364
|
var streetsGroundBackground = zoom9.linear([
|
|
8332
8365
|
[10, token5.color("surface.background.overview")],
|
|
@@ -8342,7 +8375,7 @@ var streetsAccessOverview = renderPass8({
|
|
|
8342
8375
|
selectors: [
|
|
8343
8376
|
{ kind: "geometry", geometry: "line" },
|
|
8344
8377
|
{ kind: "in", field: "class", values: ["track", "service"] },
|
|
8345
|
-
{ kind: "compare", field: "
|
|
8378
|
+
{ kind: "compare", field: "structure", operator: "ne", value: "tunnel" }
|
|
8346
8379
|
]
|
|
8347
8380
|
},
|
|
8348
8381
|
style: {
|
|
@@ -8390,7 +8423,12 @@ function overviewWidth(width, local) {
|
|
|
8390
8423
|
const factor = value[i] === 10 ? 1.12 : value[i] === 12 ? local ? 1.125 : 1.25 : value[i] === 14 ? 1.08 : 1;
|
|
8391
8424
|
if (factor !== 1) {
|
|
8392
8425
|
const authored = value[i + 1];
|
|
8393
|
-
value[i + 1] = [
|
|
8426
|
+
value[i + 1] = [
|
|
8427
|
+
"case",
|
|
8428
|
+
["==", ["get", field9("link")], true],
|
|
8429
|
+
authored,
|
|
8430
|
+
["*", authored, factor]
|
|
8431
|
+
];
|
|
8394
8432
|
}
|
|
8395
8433
|
}
|
|
8396
8434
|
return { ...width, value };
|
|
@@ -8466,7 +8504,7 @@ function streetsOverviewRoads(roads7) {
|
|
|
8466
8504
|
selectors: [
|
|
8467
8505
|
{ kind: "geometry", geometry: "line" },
|
|
8468
8506
|
{ kind: "in", field: "class", values: ["motorway", "trunk"] },
|
|
8469
|
-
{ kind: "compare", field: "
|
|
8507
|
+
{ kind: "compare", field: "structure", operator: "ne", value: "tunnel" }
|
|
8470
8508
|
]
|
|
8471
8509
|
},
|
|
8472
8510
|
style: {
|
|
@@ -8501,18 +8539,18 @@ function streetsOverviewRoads(roads7) {
|
|
|
8501
8539
|
}
|
|
8502
8540
|
|
|
8503
8541
|
// src/official/streets-cartography.ts
|
|
8504
|
-
var
|
|
8505
|
-
kind: "
|
|
8506
|
-
|
|
8507
|
-
|
|
8508
|
-
|
|
8509
|
-
|
|
8510
|
-
{ field: "hide3d", kind: "compare", operator: "ne", value: "true" }
|
|
8542
|
+
var activityOpacity = expr10.interpolate(
|
|
8543
|
+
{ kind: "linear" },
|
|
8544
|
+
expr10.toNumber(expr10.coalesce(expr10.get(field10("activity")), 1), 1),
|
|
8545
|
+
[
|
|
8546
|
+
[1, 0.4],
|
|
8547
|
+
[5, 1]
|
|
8511
8548
|
]
|
|
8512
|
-
|
|
8549
|
+
);
|
|
8550
|
+
var visibleBuilding = { field: "extrude", kind: "compare", operator: "ne", value: false };
|
|
8513
8551
|
function buildingColor2(outline = false, raised = false) {
|
|
8514
8552
|
return expr10.match(
|
|
8515
|
-
expr10.get(field10("
|
|
8553
|
+
expr10.get(field10("tone")),
|
|
8516
8554
|
[
|
|
8517
8555
|
{
|
|
8518
8556
|
labels: ["commercial", "active"],
|
|
@@ -8561,8 +8599,29 @@ function withStreetsCartography(base) {
|
|
|
8561
8599
|
land: withRenderStack8(
|
|
8562
8600
|
{
|
|
8563
8601
|
...withoutStack(land8),
|
|
8564
|
-
|
|
8565
|
-
|
|
8602
|
+
globalLandcoverUnderlay: {
|
|
8603
|
+
url: streetsClimateImage.url,
|
|
8604
|
+
coordinates: [
|
|
8605
|
+
[-180, 85.0511287798066],
|
|
8606
|
+
[180, 85.0511287798066],
|
|
8607
|
+
[180, -85.0511287798066],
|
|
8608
|
+
[-180, -85.0511287798066]
|
|
8609
|
+
],
|
|
8610
|
+
attribution: 'Climate context: <a href="https://doi.org/10.1038/s41597-023-02549-6">Beck et al. (2023)</a>, <a href="https://creativecommons.org/licenses/by/4.0/">CC BY 4.0</a>; colours and smoothing adapted by Tileflow',
|
|
8611
|
+
maxZoom: 11,
|
|
8612
|
+
opacity: zoom11.linear([
|
|
8613
|
+
[0, token7.number("land.climate.opacity")],
|
|
8614
|
+
[7, token7.number("land.climate.opacity")],
|
|
8615
|
+
[8, token7.number("land.climate.opacity85")],
|
|
8616
|
+
[9, token7.number("land.climate.opacity78")],
|
|
8617
|
+
[10, token7.number("land.climate.opacity")],
|
|
8618
|
+
[10.5, token7.number("land.climate.opacity55")],
|
|
8619
|
+
[10.75, token7.number("land.climate.opacity25")],
|
|
8620
|
+
[11, 0]
|
|
8621
|
+
])
|
|
8622
|
+
},
|
|
8623
|
+
// Streets draws activity areas in its own pass below, fading them out under buildings.
|
|
8624
|
+
activityAreas: { fill: { visible: false }, outline: { visible: false } },
|
|
8566
8625
|
background: { ...land8.background, color: streetsGroundBackground },
|
|
8567
8626
|
landcover: {
|
|
8568
8627
|
...land8.landcover,
|
|
@@ -8574,17 +8633,19 @@ function withStreetsCartography(base) {
|
|
|
8574
8633
|
},
|
|
8575
8634
|
{
|
|
8576
8635
|
...landStack,
|
|
8577
|
-
|
|
8636
|
+
// Where shops, food, services and offices concentrate: stronger with the area's
|
|
8637
|
+
// activity level, from 1 to 5, until buildings take over.
|
|
8638
|
+
activityAreas: renderPass10({
|
|
8578
8639
|
placement: { above: "land.landuse.residential.fill" },
|
|
8579
|
-
feature: "
|
|
8640
|
+
feature: "landuseOverlay",
|
|
8580
8641
|
renderer: "fill",
|
|
8581
|
-
selector: { field: "class", kind: "compare", operator: "eq", value: "
|
|
8642
|
+
selector: { field: "class", kind: "compare", operator: "eq", value: "activity_area" },
|
|
8582
8643
|
style: {
|
|
8583
|
-
color: token7.color("landuse.
|
|
8644
|
+
color: token7.color("landuse.activity"),
|
|
8584
8645
|
minZoom: 11,
|
|
8585
|
-
opacity:
|
|
8586
|
-
[15,
|
|
8587
|
-
[15.5, 0.75],
|
|
8646
|
+
opacity: expr10.interpolate({ kind: "linear" }, expr10.zoom(), [
|
|
8647
|
+
[15, activityOpacity],
|
|
8648
|
+
[15.5, expr10.multiply(activityOpacity, 0.75)],
|
|
8588
8649
|
[16.25, 0]
|
|
8589
8650
|
])
|
|
8590
8651
|
}
|
|
@@ -8685,7 +8746,14 @@ import {
|
|
|
8685
8746
|
withRenderStack as withRenderStack9
|
|
8686
8747
|
} from "@tileflow/core";
|
|
8687
8748
|
function withStreetsConstruction(module, stack) {
|
|
8688
|
-
const constructionPath = expr11.
|
|
8749
|
+
const constructionPath = expr11.all(
|
|
8750
|
+
expr11.eq(expr11.get(field11("class")), "construction"),
|
|
8751
|
+
expr11.match(
|
|
8752
|
+
expr11.get(field11("type")),
|
|
8753
|
+
[{ labels: [...worldConstructionTypes.pathway, "footway", "cycleway", "steps"], value: true }],
|
|
8754
|
+
false
|
|
8755
|
+
)
|
|
8756
|
+
);
|
|
8689
8757
|
const marks = Object.fromEntries(
|
|
8690
8758
|
[
|
|
8691
8759
|
"motorway",
|
|
@@ -8704,16 +8772,12 @@ function withStreetsConstruction(module, stack) {
|
|
|
8704
8772
|
kind: "all",
|
|
8705
8773
|
selectors: [
|
|
8706
8774
|
{ kind: "geometry", geometry: "line" },
|
|
8707
|
-
|
|
8708
|
-
|
|
8709
|
-
|
|
8710
|
-
values: roadClass === "track" ? ["track_construction", "raceway_construction"] : [`${roadClass}_construction`]
|
|
8711
|
-
},
|
|
8712
|
-
{ kind: "compare", field: "brunnel", operator: "ne", value: "bridge" },
|
|
8713
|
-
{ kind: "compare", field: "brunnel", operator: "ne", value: "tunnel" },
|
|
8775
|
+
worldConstructionSelector(roadClass),
|
|
8776
|
+
{ kind: "compare", field: "structure", operator: "ne", value: "bridge" },
|
|
8777
|
+
{ kind: "compare", field: "structure", operator: "ne", value: "tunnel" },
|
|
8714
8778
|
{
|
|
8715
8779
|
kind: "step",
|
|
8716
|
-
fallback: { kind: "compare", field: "
|
|
8780
|
+
fallback: { kind: "compare", field: "link", operator: "ne", value: true },
|
|
8717
8781
|
stops: [{ zoom: 12, selector: { kind: "literal", value: true } }]
|
|
8718
8782
|
}
|
|
8719
8783
|
]
|
|
@@ -9073,7 +9137,7 @@ function streetsPoiImage() {
|
|
|
9073
9137
|
return {
|
|
9074
9138
|
labels: category,
|
|
9075
9139
|
value: first ? expr12.match(
|
|
9076
|
-
expr12.get(field12("
|
|
9140
|
+
expr12.get(field12("type")),
|
|
9077
9141
|
[first, ...rest],
|
|
9078
9142
|
categoryRole
|
|
9079
9143
|
) : categoryRole
|
|
@@ -9088,7 +9152,7 @@ function streetsPoiImage() {
|
|
|
9088
9152
|
expr12.get(field12("mode")),
|
|
9089
9153
|
[firstMode, ...otherModes],
|
|
9090
9154
|
expr12.match(
|
|
9091
|
-
expr12.get(field12("
|
|
9155
|
+
expr12.get(field12("class")),
|
|
9092
9156
|
[firstCategory, ...otherCategories],
|
|
9093
9157
|
token9.image("poi.landmark")
|
|
9094
9158
|
)
|
|
@@ -9100,7 +9164,7 @@ function streetsPoiImage() {
|
|
|
9100
9164
|
return expr12.case(
|
|
9101
9165
|
[
|
|
9102
9166
|
{
|
|
9103
|
-
when: expr12.eq(expr12.get(field12("
|
|
9167
|
+
when: expr12.eq(expr12.get(field12("class")), "transport"),
|
|
9104
9168
|
value: expr12.match(
|
|
9105
9169
|
expr12.get(field12("network")),
|
|
9106
9170
|
[firstNetwork, ...otherNetworks],
|
|
@@ -9387,7 +9451,7 @@ var rows = [
|
|
|
9387
9451
|
]
|
|
9388
9452
|
],
|
|
9389
9453
|
[
|
|
9390
|
-
"landuse.commercial landuse.
|
|
9454
|
+
"landuse.commercial landuse.activity",
|
|
9391
9455
|
[
|
|
9392
9456
|
"#FFDDBF",
|
|
9393
9457
|
"#FEECDF",
|
|
@@ -10376,8 +10440,6 @@ var streetsDayColors = {
|
|
|
10376
10440
|
"boundaries.maritime": "#FF668C",
|
|
10377
10441
|
"boundaries.regional": "#FF809A",
|
|
10378
10442
|
"buildings.active": "#EBECDE",
|
|
10379
|
-
"buildings.businessCorridor": "#F9EFDD",
|
|
10380
|
-
"buildings.businessCorridorOutline": "#D7D1C2",
|
|
10381
10443
|
"buildings.civic": "#EBECDE",
|
|
10382
10444
|
"buildings.commercial": "#EBECDE",
|
|
10383
10445
|
"buildings.contactShadow": "#888378",
|
|
@@ -10458,8 +10520,8 @@ var streetsDayColors = {
|
|
|
10458
10520
|
"landcover.villageGreen": "#ABEFBF",
|
|
10459
10521
|
"landcover.wetland": "#C1F2CF",
|
|
10460
10522
|
"landcover.wood": "#9BE1AF",
|
|
10461
|
-
"landuse.
|
|
10462
|
-
"landuse.
|
|
10523
|
+
"landuse.activity": "#F9EFDD",
|
|
10524
|
+
"landuse.activityOutline": "#E0DAC9",
|
|
10463
10525
|
"landuse.cemetery": "#BCECCB",
|
|
10464
10526
|
"landuse.civic": "#F0F2EE",
|
|
10465
10527
|
"landuse.commercial": "#F9EFDD",
|
|
@@ -10774,9 +10836,11 @@ function streetsCartographyThemes(base) {
|
|
|
10774
10836
|
["roads.path.groundOpacity", 1],
|
|
10775
10837
|
["labels.shield.spacing11", 420],
|
|
10776
10838
|
["labels.shield.spacing13", 480],
|
|
10839
|
+
// Only daylight shows the climate; the other appearances keep the same layer clear,
|
|
10840
|
+
// so every appearance shares one cartography.
|
|
10777
10841
|
...[100, 85, 78, 55, 25].map((value) => [
|
|
10778
10842
|
`land.climate.opacity${value === 100 ? "" : value}`,
|
|
10779
|
-
value / 100
|
|
10843
|
+
name === "light" ? value / 100 : 0
|
|
10780
10844
|
])
|
|
10781
10845
|
])
|
|
10782
10846
|
}
|
|
@@ -10822,11 +10886,11 @@ var defaultLighting = {
|
|
|
10822
10886
|
sun: {
|
|
10823
10887
|
azimuth: 180,
|
|
10824
10888
|
altitude: 70,
|
|
10825
|
-
color: "#
|
|
10826
|
-
intensity: 0.
|
|
10827
|
-
shadowIntensity:
|
|
10889
|
+
color: "#FFFFFF",
|
|
10890
|
+
intensity: 0.2,
|
|
10891
|
+
shadowIntensity: 1
|
|
10828
10892
|
},
|
|
10829
|
-
ambient: { color: "#
|
|
10893
|
+
ambient: { color: "#FFFFFF", intensity: 0.8 }
|
|
10830
10894
|
},
|
|
10831
10895
|
dusk: {
|
|
10832
10896
|
sun: {
|
|
@@ -10866,7 +10930,7 @@ var fadedLighting = withLightColors({
|
|
|
10866
10930
|
sun: "rgb(252.513725, 222.937729, 169.273879)",
|
|
10867
10931
|
ambient: "rgb(254, 244.681815, 235.980392)"
|
|
10868
10932
|
},
|
|
10869
|
-
day: { sun: "#
|
|
10933
|
+
day: { sun: "#FFFFFF", ambient: "#FFFFFF" },
|
|
10870
10934
|
dusk: {
|
|
10871
10935
|
sun: "rgb(252.513725, 217.250027, 164.945083)",
|
|
10872
10936
|
ambient: "rgb(87.776471, 97.427724, 126.419608)"
|
|
@@ -11222,8 +11286,6 @@ var streetsLightColors = {
|
|
|
11222
11286
|
"boundaries.maritime": "#648AA4",
|
|
11223
11287
|
"boundaries.regional": "#CE9698",
|
|
11224
11288
|
"buildings.active": "#EFEADD",
|
|
11225
|
-
"buildings.businessCorridor": "#F4E6D8",
|
|
11226
|
-
"buildings.businessCorridorOutline": "#DCCFC3",
|
|
11227
11289
|
"buildings.civic": "#EFEADD",
|
|
11228
11290
|
"buildings.commercial": "#EFEADD",
|
|
11229
11291
|
"buildings.destination": "#EFEADD",
|
|
@@ -11296,8 +11358,8 @@ var streetsLightColors = {
|
|
|
11296
11358
|
"landcover.villageGreen": "#C2E7B5",
|
|
11297
11359
|
"landcover.wetland": "#D7E9DE",
|
|
11298
11360
|
"landcover.wood": "#A7DFA0",
|
|
11299
|
-
"landuse.
|
|
11300
|
-
"landuse.
|
|
11361
|
+
"landuse.activity": "#FBEDE2",
|
|
11362
|
+
"landuse.activityOutline": "#E6D8CA",
|
|
11301
11363
|
"landuse.cemetery": "#CCE5C6",
|
|
11302
11364
|
"landuse.civic": "#F5F1F0",
|
|
11303
11365
|
"landuse.commercial": "#FBEDE2",
|
|
@@ -11390,8 +11452,6 @@ var streetsDarkColors = {
|
|
|
11390
11452
|
"boundaries.maritime": "#8192B3",
|
|
11391
11453
|
"boundaries.regional": "#76586D",
|
|
11392
11454
|
"buildings.active": "#373743",
|
|
11393
|
-
"buildings.businessCorridor": "#45424E",
|
|
11394
|
-
"buildings.businessCorridorOutline": "#56515A",
|
|
11395
11455
|
"buildings.civic": "#2C2E3D",
|
|
11396
11456
|
"buildings.commercial": "#2C2E3D",
|
|
11397
11457
|
"buildings.destination": "#3A3947",
|
|
@@ -11459,8 +11519,8 @@ var streetsDarkColors = {
|
|
|
11459
11519
|
"landcover.villageGreen": "#46564D",
|
|
11460
11520
|
"landcover.wetland": "#33474A",
|
|
11461
11521
|
"landcover.wood": "#34453F",
|
|
11462
|
-
"landuse.
|
|
11463
|
-
"landuse.
|
|
11522
|
+
"landuse.activity": "#45424E",
|
|
11523
|
+
"landuse.activityOutline": "#5A5561",
|
|
11464
11524
|
"landuse.cemetery": "#45534D",
|
|
11465
11525
|
"landuse.civic": "#2D3043",
|
|
11466
11526
|
"landuse.commercial": "#45424E",
|
|
@@ -11632,8 +11692,6 @@ function calibratedStreetsColors(preset, theme) {
|
|
|
11632
11692
|
}
|
|
11633
11693
|
if (role === "buildings.extrusion")
|
|
11634
11694
|
return { ...parseStreetsColor(profile.extrusion), a: color.a };
|
|
11635
|
-
if (role.startsWith("buildings.businessCorridor"))
|
|
11636
|
-
return shift(base["landuse.commercial"], profile.commercial);
|
|
11637
11695
|
if (role.startsWith("buildings.") || role === "surface.building")
|
|
11638
11696
|
return shift(base["buildings.fill"], profile.building);
|
|
11639
11697
|
if (role === "labels.ferryHalo") return water8();
|
|
@@ -11658,7 +11716,7 @@ function calibratedStreetsColors(preset, theme) {
|
|
|
11658
11716
|
if (role.startsWith("roads.")) return shift(base["roads.default"], profile.road);
|
|
11659
11717
|
if (role.startsWith("landuse.recreation"))
|
|
11660
11718
|
return shift(base["landuse.recreation"], profile.sport);
|
|
11661
|
-
if (role.startsWith("landuse.
|
|
11719
|
+
if (role.startsWith("landuse.activity") || role === "landuse.commercial")
|
|
11662
11720
|
return shift(base["landuse.commercial"], profile.commercial);
|
|
11663
11721
|
const green = role.startsWith("landcover.") && !/(?:^|\.)(?:barren|ice|rock|sand|snow|urban)$/.test(role);
|
|
11664
11722
|
if (green || role === "surface.park" || role === "landuse.cemetery")
|
|
@@ -11889,8 +11947,8 @@ var streetsVisual = {
|
|
|
11889
11947
|
),
|
|
11890
11948
|
landuse: Object.fromEntries(
|
|
11891
11949
|
[
|
|
11892
|
-
"
|
|
11893
|
-
"
|
|
11950
|
+
"activity",
|
|
11951
|
+
"activityOutline",
|
|
11894
11952
|
"cemetery",
|
|
11895
11953
|
"civic",
|
|
11896
11954
|
"commercial",
|
|
@@ -12323,8 +12381,8 @@ var streetsSurfacePalette = {
|
|
|
12323
12381
|
[14, streetsVisual.surface.background]
|
|
12324
12382
|
]),
|
|
12325
12383
|
barren: streetsVisual.landcover.barren,
|
|
12326
|
-
|
|
12327
|
-
|
|
12384
|
+
activity: streetsVisual.landuse.activity,
|
|
12385
|
+
activityOutline: streetsVisual.landuse.activityOutline,
|
|
12328
12386
|
cemetery: streetsVisual.landuse.cemetery,
|
|
12329
12387
|
civic: streetsVisual.landuse.civic,
|
|
12330
12388
|
crop: streetsVisual.landcover.farmland,
|
|
@@ -12410,8 +12468,8 @@ var protectedAreaOpacity = zoom13.linear([
|
|
|
12410
12468
|
[6, 1]
|
|
12411
12469
|
]);
|
|
12412
12470
|
function streetsPoiStyle(category) {
|
|
12413
|
-
const filterRank = expr14.toNumber(expr14.get(field14("
|
|
12414
|
-
const sizeRank = expr14.toNumber(expr14.get(field14("
|
|
12471
|
+
const filterRank = expr14.toNumber(expr14.get(field14("filterrank")), 6);
|
|
12472
|
+
const sizeRank = expr14.toNumber(expr14.get(field14("sizerank")), 17);
|
|
12415
12473
|
const featured = expr14.all(expr14.lte(filterRank, 0), expr14.lt(sizeRank, 5));
|
|
12416
12474
|
const featuredDetail = expr14.all(expr14.lte(filterRank, 1), expr14.lt(sizeRank, 13));
|
|
12417
12475
|
return {
|
|
@@ -12493,19 +12551,17 @@ var buildingOutlineColor = mapboxBuildingPalette.outline;
|
|
|
12493
12551
|
var building3dColor = streetsVisual.building.extrusion;
|
|
12494
12552
|
var buildingShadowColor = streetsVisual.building.shadow;
|
|
12495
12553
|
var visibleBuilding3dSelector = {
|
|
12496
|
-
|
|
12497
|
-
|
|
12498
|
-
|
|
12499
|
-
|
|
12500
|
-
{ field: "hide3d", kind: "compare", operator: "ne", value: "1" }
|
|
12501
|
-
]
|
|
12554
|
+
field: "extrude",
|
|
12555
|
+
kind: "compare",
|
|
12556
|
+
operator: "ne",
|
|
12557
|
+
value: false
|
|
12502
12558
|
};
|
|
12503
12559
|
var groundedBuilding3dSelector = {
|
|
12504
12560
|
kind: "all",
|
|
12505
12561
|
selectors: [
|
|
12506
12562
|
visibleBuilding3dSelector,
|
|
12507
12563
|
{
|
|
12508
|
-
field: "
|
|
12564
|
+
field: "minHeight",
|
|
12509
12565
|
coerce: "number",
|
|
12510
12566
|
fallback: 0,
|
|
12511
12567
|
kind: "compare",
|
|
@@ -12515,9 +12571,9 @@ var groundedBuilding3dSelector = {
|
|
|
12515
12571
|
{
|
|
12516
12572
|
kind: "any",
|
|
12517
12573
|
selectors: [
|
|
12518
|
-
{ kind: "not", selector: { kind: "has", field: "
|
|
12574
|
+
{ kind: "not", selector: { kind: "has", field: "height" } },
|
|
12519
12575
|
{
|
|
12520
|
-
field: "
|
|
12576
|
+
field: "height",
|
|
12521
12577
|
coerce: "number",
|
|
12522
12578
|
fallback: 5,
|
|
12523
12579
|
kind: "compare",
|
|
@@ -12528,16 +12584,10 @@ var groundedBuilding3dSelector = {
|
|
|
12528
12584
|
}
|
|
12529
12585
|
]
|
|
12530
12586
|
};
|
|
12531
|
-
var building3dHeight = expr14.max(
|
|
12532
|
-
0,
|
|
12533
|
-
expr14.toNumber(expr14.coalesce(expr14.get(field14("renderHeight")), 5), 5)
|
|
12534
|
-
);
|
|
12587
|
+
var building3dHeight = expr14.max(0, expr14.toNumber(expr14.coalesce(expr14.get(field14("height")), 5), 5));
|
|
12535
12588
|
var building3dBase = expr14.max(
|
|
12536
12589
|
0,
|
|
12537
|
-
expr14.min(
|
|
12538
|
-
expr14.toNumber(expr14.coalesce(expr14.get(field14("renderMinHeight")), 0), 0),
|
|
12539
|
-
building3dHeight
|
|
12540
|
-
)
|
|
12590
|
+
expr14.min(expr14.toNumber(expr14.coalesce(expr14.get(field14("minHeight")), 0), 0), building3dHeight)
|
|
12541
12591
|
);
|
|
12542
12592
|
var roadLineCap = zoom13.step([
|
|
12543
12593
|
[3, "butt"],
|
|
@@ -12556,7 +12606,7 @@ var pathLineJoin = zoom13.step([
|
|
|
12556
12606
|
[16, "round"]
|
|
12557
12607
|
]);
|
|
12558
12608
|
var circularRoadBaseWidth = expr14.match(
|
|
12559
|
-
expr14.coalesce(expr14.get(field14("class")), "
|
|
12609
|
+
expr14.coalesce(expr14.get(field14("class")), "street"),
|
|
12560
12610
|
[
|
|
12561
12611
|
{ labels: "motorway", value: 6 },
|
|
12562
12612
|
{ labels: "trunk", value: 5.5 },
|
|
@@ -12586,14 +12636,13 @@ var tunnelBorderWidth = 1;
|
|
|
12586
12636
|
function roadWidth(widths2, oneWayScale, rampWidths) {
|
|
12587
12637
|
const augmentedWidths = [...widths2].sort(([left], [right]) => left - right);
|
|
12588
12638
|
const widthOutput = (level, width) => {
|
|
12589
|
-
const ordinaryWidth = oneWayScale === 1 ? width : expr14.
|
|
12590
|
-
expr14.get(field14("oneway")),
|
|
12591
|
-
[{ labels: [1, -1], value: width * oneWayScale }],
|
|
12639
|
+
const ordinaryWidth = oneWayScale === 1 ? width : expr14.case(
|
|
12640
|
+
[{ when: expr14.eq(expr14.get(field14("oneway")), true), value: width * oneWayScale }],
|
|
12592
12641
|
width
|
|
12593
12642
|
);
|
|
12594
12643
|
const rampWidth = rampWidths ? sampleRoadWidth(rampWidths, level) : void 0;
|
|
12595
12644
|
const surfaceWidth = rampWidth === void 0 ? ordinaryWidth : expr14.case(
|
|
12596
|
-
[{ when: expr14.eq(expr14.get(field14("
|
|
12645
|
+
[{ when: expr14.eq(expr14.get(field14("link")), true), value: rampWidth }],
|
|
12597
12646
|
ordinaryWidth
|
|
12598
12647
|
);
|
|
12599
12648
|
return surfaceWidth;
|
|
@@ -12633,7 +12682,7 @@ function roadCasingWidth(major) {
|
|
|
12633
12682
|
return expr14.interpolate({ kind: "exponential", base: 1.5 }, expr14.zoom(), [
|
|
12634
12683
|
[
|
|
12635
12684
|
14,
|
|
12636
|
-
major ? expr14.case([{ when: expr14.eq(expr14.get(field14("
|
|
12685
|
+
major ? expr14.case([{ when: expr14.eq(expr14.get(field14("link")), true), value: 0.8 }], 1) : 0.8
|
|
12637
12686
|
],
|
|
12638
12687
|
[22, 2]
|
|
12639
12688
|
]);
|
|
@@ -12697,7 +12746,7 @@ function rankAtMost(value) {
|
|
|
12697
12746
|
return {
|
|
12698
12747
|
coerce: "number",
|
|
12699
12748
|
fallback: 99,
|
|
12700
|
-
field: "
|
|
12749
|
+
field: "symbolrank",
|
|
12701
12750
|
kind: "compare",
|
|
12702
12751
|
operator: "lte",
|
|
12703
12752
|
value
|
|
@@ -12707,7 +12756,7 @@ var namedCitySelector = {
|
|
|
12707
12756
|
kind: "all",
|
|
12708
12757
|
selectors: [
|
|
12709
12758
|
{ field: "name", kind: "has" },
|
|
12710
|
-
{ field: "
|
|
12759
|
+
{ field: "type", kind: "compare", operator: "eq", value: "city" },
|
|
12711
12760
|
{
|
|
12712
12761
|
kind: "any",
|
|
12713
12762
|
selectors: [
|
|
@@ -12736,7 +12785,7 @@ function streetsBoundaryRenderStack() {
|
|
|
12736
12785
|
return {
|
|
12737
12786
|
admin2Background: renderPass13({
|
|
12738
12787
|
placement: { below: "boundaries.admin4" },
|
|
12739
|
-
feature: "
|
|
12788
|
+
feature: "admin",
|
|
12740
12789
|
renderer: "line",
|
|
12741
12790
|
selector: {
|
|
12742
12791
|
kind: "all",
|
|
@@ -12778,7 +12827,7 @@ function streetsBoundaryRenderStack() {
|
|
|
12778
12827
|
}),
|
|
12779
12828
|
admin4Background: renderPass13({
|
|
12780
12829
|
placement: { below: "boundaries.admin4" },
|
|
12781
|
-
feature: "
|
|
12830
|
+
feature: "admin",
|
|
12782
12831
|
renderer: "line",
|
|
12783
12832
|
selector: {
|
|
12784
12833
|
kind: "all",
|
|
@@ -12825,7 +12874,7 @@ function streetsBoundaryRenderStack() {
|
|
|
12825
12874
|
// metro zooms onward, so Streets adds it as an explicit semantic pass.
|
|
12826
12875
|
admin6: renderPass13({
|
|
12827
12876
|
placement: { above: "boundaries.admin4" },
|
|
12828
|
-
feature: "
|
|
12877
|
+
feature: "admin",
|
|
12829
12878
|
renderer: "line",
|
|
12830
12879
|
selector: {
|
|
12831
12880
|
kind: "all",
|
|
@@ -12869,14 +12918,14 @@ function streetsBoundaryRenderStack() {
|
|
|
12869
12918
|
function streetsLandRenderStack() {
|
|
12870
12919
|
return {
|
|
12871
12920
|
// Core orders general cover, parks, lawn detail and mapped built surfaces.
|
|
12872
|
-
// Streets adds only its own
|
|
12873
|
-
|
|
12921
|
+
// Streets adds only its own activity-area treatment.
|
|
12922
|
+
activityAreas: renderPass13({
|
|
12874
12923
|
placement: { above: "land.landuse.residential.fill" },
|
|
12875
|
-
feature: "
|
|
12924
|
+
feature: "landuseOverlay",
|
|
12876
12925
|
renderer: "fill",
|
|
12877
|
-
selector: { field: "class", kind: "compare", operator: "eq", value: "
|
|
12926
|
+
selector: { field: "class", kind: "compare", operator: "eq", value: "activity_area" },
|
|
12878
12927
|
style: {
|
|
12879
|
-
color: streetsSurfacePalette.
|
|
12928
|
+
color: streetsSurfacePalette.activity,
|
|
12880
12929
|
minZoom: 11,
|
|
12881
12930
|
opacity: 1
|
|
12882
12931
|
}
|
|
@@ -13045,7 +13094,7 @@ function streetsBuildingRenderStack() {
|
|
|
13045
13094
|
function streetsLabelRenderStack() {
|
|
13046
13095
|
return {
|
|
13047
13096
|
ferry: renderPass13({
|
|
13048
|
-
feature: "
|
|
13097
|
+
feature: "roadLabel",
|
|
13049
13098
|
placement: "below-labels",
|
|
13050
13099
|
renderer: "symbol",
|
|
13051
13100
|
selector: {
|
|
@@ -13057,7 +13106,7 @@ function streetsLabelRenderStack() {
|
|
|
13057
13106
|
kind: "any",
|
|
13058
13107
|
selectors: [
|
|
13059
13108
|
{ field: "class", kind: "compare", operator: "eq", value: "ferry" },
|
|
13060
|
-
{ field: "
|
|
13109
|
+
{ field: "type", kind: "compare", operator: "eq", value: "ferry" }
|
|
13061
13110
|
]
|
|
13062
13111
|
}
|
|
13063
13112
|
]
|
|
@@ -13088,14 +13137,14 @@ function streetsLabelRenderStack() {
|
|
|
13088
13137
|
}),
|
|
13089
13138
|
settlementMarker: renderPass13({
|
|
13090
13139
|
placement: { below: "labels.places.city" },
|
|
13091
|
-
feature: "
|
|
13140
|
+
feature: "placeLabel",
|
|
13092
13141
|
renderer: "circle",
|
|
13093
13142
|
selector: namedCitySelector,
|
|
13094
13143
|
style: {
|
|
13095
13144
|
color: streetsVisual.label.settlement,
|
|
13096
13145
|
maxZoom: 8,
|
|
13097
13146
|
minZoom: 2,
|
|
13098
|
-
radius: expr14.step(expr14.coalesce(expr14.get(field14("
|
|
13147
|
+
radius: expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 3, [
|
|
13099
13148
|
[3, 2.5],
|
|
13100
13149
|
[7, 2]
|
|
13101
13150
|
]),
|
|
@@ -13132,7 +13181,7 @@ function streetsLabelRenderStack() {
|
|
|
13132
13181
|
{
|
|
13133
13182
|
field: "class",
|
|
13134
13183
|
kind: "in",
|
|
13135
|
-
values: ["state", "
|
|
13184
|
+
values: ["state", "territory"]
|
|
13136
13185
|
},
|
|
13137
13186
|
{
|
|
13138
13187
|
fallback: rankAtMost(1),
|
|
@@ -13159,7 +13208,7 @@ function streetsLabelRenderStack() {
|
|
|
13159
13208
|
kind: "all",
|
|
13160
13209
|
selectors: [
|
|
13161
13210
|
{ field: "name", kind: "has" },
|
|
13162
|
-
{ field: "
|
|
13211
|
+
{ field: "type", kind: "compare", operator: "eq", value: "town" },
|
|
13163
13212
|
{
|
|
13164
13213
|
fallback: rankAtMost(7),
|
|
13165
13214
|
kind: "step",
|
|
@@ -13180,7 +13229,7 @@ function streetsLabelRenderStack() {
|
|
|
13180
13229
|
kind: "all",
|
|
13181
13230
|
selectors: [
|
|
13182
13231
|
{ field: "name", kind: "has" },
|
|
13183
|
-
{ field: "
|
|
13232
|
+
{ field: "type", kind: "compare", operator: "eq", value: "village" },
|
|
13184
13233
|
{
|
|
13185
13234
|
fallback: { kind: "literal", value: false },
|
|
13186
13235
|
kind: "step",
|
|
@@ -13203,7 +13252,7 @@ function streetsLabelRenderStack() {
|
|
|
13203
13252
|
selectors: [
|
|
13204
13253
|
{ field: "name", kind: "has" },
|
|
13205
13254
|
{
|
|
13206
|
-
field: "
|
|
13255
|
+
field: "type",
|
|
13207
13256
|
kind: "in",
|
|
13208
13257
|
values: ["suburb", "neighbourhood", "quarter", "borough"]
|
|
13209
13258
|
},
|
|
@@ -13238,7 +13287,14 @@ function cityRoadSurfaceColor(roadClass) {
|
|
|
13238
13287
|
expr14.case(
|
|
13239
13288
|
[
|
|
13240
13289
|
{
|
|
13241
|
-
when: expr14.
|
|
13290
|
+
when: expr14.all(
|
|
13291
|
+
expr14.eq(expr14.get(field14("class")), "construction"),
|
|
13292
|
+
expr14.match(
|
|
13293
|
+
expr14.get(field14("type")),
|
|
13294
|
+
[{ labels: [...worldConstructionTypes[roadClass]], value: true }],
|
|
13295
|
+
false
|
|
13296
|
+
)
|
|
13297
|
+
),
|
|
13242
13298
|
value: roadSurfaceColor
|
|
13243
13299
|
},
|
|
13244
13300
|
{
|
|
@@ -13266,16 +13322,12 @@ function streetsRoadEligibility() {
|
|
|
13266
13322
|
kind: "all",
|
|
13267
13323
|
selectors: [
|
|
13268
13324
|
{ kind: "geometry", geometry: "line" },
|
|
13269
|
-
{
|
|
13270
|
-
kind: "in",
|
|
13271
|
-
field: "class",
|
|
13272
|
-
values: [roadClass, `${roadClass}_construction`]
|
|
13273
|
-
},
|
|
13325
|
+
worldRoadSelector([roadClass], { construction: true }),
|
|
13274
13326
|
{
|
|
13275
13327
|
kind: "compare",
|
|
13276
|
-
field: "
|
|
13328
|
+
field: "link",
|
|
13277
13329
|
operator: phase === "rampFill" ? "eq" : "ne",
|
|
13278
|
-
value:
|
|
13330
|
+
value: true
|
|
13279
13331
|
},
|
|
13280
13332
|
{
|
|
13281
13333
|
kind: "step",
|
|
@@ -13286,8 +13338,8 @@ function streetsRoadEligibility() {
|
|
|
13286
13338
|
selector: {
|
|
13287
13339
|
kind: "all",
|
|
13288
13340
|
selectors: [
|
|
13289
|
-
{ kind: "compare", field: "
|
|
13290
|
-
{ kind: "compare", field: "
|
|
13341
|
+
{ kind: "compare", field: "structure", operator: "ne", value: "tunnel" },
|
|
13342
|
+
{ kind: "compare", field: "structure", operator: "ne", value: "bridge" }
|
|
13291
13343
|
]
|
|
13292
13344
|
}
|
|
13293
13345
|
}
|
|
@@ -13345,10 +13397,8 @@ function streetsRoadRenderStack() {
|
|
|
13345
13397
|
]),
|
|
13346
13398
|
padding: 0,
|
|
13347
13399
|
pitchAlignment: "map",
|
|
13348
|
-
|
|
13349
|
-
|
|
13350
|
-
0
|
|
13351
|
-
),
|
|
13400
|
+
// World orients one-way geometry in the direction of travel.
|
|
13401
|
+
rotate: 0,
|
|
13352
13402
|
rotationAlignment: "map",
|
|
13353
13403
|
size: expr14.interpolate({ kind: "linear" }, expr14.zoom(), [
|
|
13354
13404
|
[15, 0.38],
|
|
@@ -13366,10 +13416,7 @@ function streetsRoadRenderStack() {
|
|
|
13366
13416
|
]),
|
|
13367
13417
|
text: {
|
|
13368
13418
|
allowOverlap: true,
|
|
13369
|
-
field:
|
|
13370
|
-
[{ when: expr14.eq(expr14.get(field14("oneway")), -1), value: "\u2190" }],
|
|
13371
|
-
"\u2192"
|
|
13372
|
-
),
|
|
13419
|
+
field: "\u2192",
|
|
13373
13420
|
ignorePlacement: true,
|
|
13374
13421
|
keepUpright: false,
|
|
13375
13422
|
opacity: 0,
|
|
@@ -13560,14 +13607,23 @@ function roadLabelStyle(kind, minZoom) {
|
|
|
13560
13607
|
// Resolve dense parallel streets by road hierarchy, not incidental tile order.
|
|
13561
13608
|
// All classes share this expression so the compiler retains one collision network.
|
|
13562
13609
|
priority: expr14.match(
|
|
13563
|
-
|
|
13610
|
+
// A road under construction ranks as the road it becomes.
|
|
13611
|
+
expr14.case(
|
|
13612
|
+
[
|
|
13613
|
+
{
|
|
13614
|
+
when: expr14.eq(expr14.get(field14("class")), "construction"),
|
|
13615
|
+
value: expr14.coalesce(expr14.get(field14("type")), "")
|
|
13616
|
+
}
|
|
13617
|
+
],
|
|
13618
|
+
expr14.coalesce(expr14.get(field14("class")), "street")
|
|
13619
|
+
),
|
|
13564
13620
|
[
|
|
13565
|
-
{ labels: [
|
|
13566
|
-
{ labels: [
|
|
13567
|
-
{ labels: [
|
|
13568
|
-
{ labels: [
|
|
13569
|
-
{ labels: [
|
|
13570
|
-
{ labels: [
|
|
13621
|
+
{ labels: [...worldConstructionTypes.motorway], value: 6 },
|
|
13622
|
+
{ labels: [...worldConstructionTypes.trunk], value: 5 },
|
|
13623
|
+
{ labels: [...worldConstructionTypes.primary], value: 4 },
|
|
13624
|
+
{ labels: [...worldConstructionTypes.secondary], value: 3 },
|
|
13625
|
+
{ labels: [...worldConstructionTypes.tertiary], value: 2 },
|
|
13626
|
+
{ labels: [...worldConstructionTypes.minor], value: 1 }
|
|
13571
13627
|
],
|
|
13572
13628
|
0
|
|
13573
13629
|
),
|
|
@@ -14056,7 +14112,7 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14056
14112
|
}
|
|
14057
14113
|
},
|
|
14058
14114
|
modifiers: {
|
|
14059
|
-
// Optional keys: construction, expressway, indoor,
|
|
14115
|
+
// Optional keys: construction, expressway, indoor, ramp, unpaved.
|
|
14060
14116
|
// Treatments accept enabled, widthScale, surface, tunnel, and bridge;
|
|
14061
14117
|
// phases accept color, opacity, dash, blur, gapWidth, offset, and width.
|
|
14062
14118
|
expressway: { widthScale: expresswayWidthScale },
|
|
@@ -14479,13 +14535,6 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14479
14535
|
)
|
|
14480
14536
|
}
|
|
14481
14537
|
},
|
|
14482
|
-
businessCorridor: {
|
|
14483
|
-
// This compatibility layer contains selected building footprints,
|
|
14484
|
-
// not ground. Streets renders the derived business_area class through
|
|
14485
|
-
// landuse instead.
|
|
14486
|
-
fill: { visible: false },
|
|
14487
|
-
outline: { visible: false }
|
|
14488
|
-
},
|
|
14489
14538
|
flat: {
|
|
14490
14539
|
fill: {
|
|
14491
14540
|
color: buildingFillColor,
|
|
@@ -14618,14 +14667,14 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14618
14667
|
[
|
|
14619
14668
|
[
|
|
14620
14669
|
1,
|
|
14621
|
-
expr14.step(expr14.coalesce(expr14.get(field14("
|
|
14670
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 11, [
|
|
14622
14671
|
[4, 9],
|
|
14623
14672
|
[5, 8]
|
|
14624
14673
|
])
|
|
14625
14674
|
],
|
|
14626
14675
|
[
|
|
14627
14676
|
9,
|
|
14628
|
-
expr14.step(expr14.coalesce(expr14.get(field14("
|
|
14677
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 22, [
|
|
14629
14678
|
[4, 19],
|
|
14630
14679
|
[5, 17]
|
|
14631
14680
|
])
|
|
@@ -14653,14 +14702,14 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14653
14702
|
[
|
|
14654
14703
|
[
|
|
14655
14704
|
4,
|
|
14656
|
-
expr14.step(expr14.coalesce(expr14.get(field14("
|
|
14705
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 9, [
|
|
14657
14706
|
[6, 8],
|
|
14658
14707
|
[7, 7]
|
|
14659
14708
|
])
|
|
14660
14709
|
],
|
|
14661
14710
|
[
|
|
14662
14711
|
9,
|
|
14663
|
-
expr14.step(expr14.coalesce(expr14.get(field14("
|
|
14712
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 21, [
|
|
14664
14713
|
[6, 16],
|
|
14665
14714
|
[7, 14]
|
|
14666
14715
|
])
|
|
@@ -14673,7 +14722,7 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14673
14722
|
city: {
|
|
14674
14723
|
minZoom: 2,
|
|
14675
14724
|
maxZoom: 15,
|
|
14676
|
-
priority: expr14.subtract(100, expr14.coalesce(expr14.get(field14("
|
|
14725
|
+
priority: expr14.subtract(100, expr14.coalesce(expr14.get(field14("symbolrank")), 20)),
|
|
14677
14726
|
text: {
|
|
14678
14727
|
color: zoom13.linear([
|
|
14679
14728
|
[2, streetsOverviewPalette.label],
|
|
@@ -14694,24 +14743,27 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14694
14743
|
{ kind: "cubic-bezier", x1: 0.2, x2: 0.9, y1: 0, y2: 1 },
|
|
14695
14744
|
expr14.zoom(),
|
|
14696
14745
|
[
|
|
14697
|
-
[
|
|
14746
|
+
[
|
|
14747
|
+
3,
|
|
14748
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 13, [[6, 11]])
|
|
14749
|
+
],
|
|
14698
14750
|
[
|
|
14699
14751
|
6,
|
|
14700
|
-
expr14.step(expr14.coalesce(expr14.get(field14("
|
|
14752
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 18, [
|
|
14701
14753
|
[6, 16],
|
|
14702
14754
|
[7, 14]
|
|
14703
14755
|
])
|
|
14704
14756
|
],
|
|
14705
14757
|
[
|
|
14706
14758
|
8,
|
|
14707
|
-
expr14.step(expr14.coalesce(expr14.get(field14("
|
|
14759
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 20, [
|
|
14708
14760
|
[9, 16],
|
|
14709
14761
|
[10, 14]
|
|
14710
14762
|
])
|
|
14711
14763
|
],
|
|
14712
14764
|
[
|
|
14713
14765
|
15,
|
|
14714
|
-
expr14.step(expr14.coalesce(expr14.get(field14("
|
|
14766
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 24, [
|
|
14715
14767
|
[9, 20],
|
|
14716
14768
|
[12, 16],
|
|
14717
14769
|
[15, 14]
|
|
@@ -14726,7 +14778,7 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14726
14778
|
town: {
|
|
14727
14779
|
minZoom: 2,
|
|
14728
14780
|
maxZoom: 13,
|
|
14729
|
-
priority: expr14.subtract(80, expr14.coalesce(expr14.get(field14("
|
|
14781
|
+
priority: expr14.subtract(80, expr14.coalesce(expr14.get(field14("symbolrank")), 20)),
|
|
14730
14782
|
text: {
|
|
14731
14783
|
color: streetsVisual.label.settlement,
|
|
14732
14784
|
haloColor: streetsVisual.label.placeHalo,
|
|
@@ -14743,17 +14795,20 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14743
14795
|
{ kind: "cubic-bezier", x1: 0.2, x2: 0.9, y1: 0, y2: 1 },
|
|
14744
14796
|
expr14.zoom(),
|
|
14745
14797
|
[
|
|
14746
|
-
[
|
|
14798
|
+
[
|
|
14799
|
+
3,
|
|
14800
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 11, [[9, 10]])
|
|
14801
|
+
],
|
|
14747
14802
|
[
|
|
14748
14803
|
6,
|
|
14749
|
-
expr14.step(expr14.coalesce(expr14.get(field14("
|
|
14804
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 14, [
|
|
14750
14805
|
[9, 12],
|
|
14751
14806
|
[12, 10]
|
|
14752
14807
|
])
|
|
14753
14808
|
],
|
|
14754
14809
|
[
|
|
14755
14810
|
8,
|
|
14756
|
-
expr14.step(expr14.coalesce(expr14.get(field14("
|
|
14811
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 16, [
|
|
14757
14812
|
[9, 14],
|
|
14758
14813
|
[12, 12],
|
|
14759
14814
|
[15, 10]
|
|
@@ -14761,7 +14816,7 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14761
14816
|
],
|
|
14762
14817
|
[
|
|
14763
14818
|
13,
|
|
14764
|
-
expr14.step(expr14.coalesce(expr14.get(field14("
|
|
14819
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 22, [
|
|
14765
14820
|
[9, 20],
|
|
14766
14821
|
[12, 16],
|
|
14767
14822
|
[15, 14]
|
|
@@ -14785,7 +14840,7 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14785
14840
|
village: {
|
|
14786
14841
|
minZoom: 2,
|
|
14787
14842
|
maxZoom: 13,
|
|
14788
|
-
priority: expr14.subtract(65, expr14.coalesce(expr14.get(field14("
|
|
14843
|
+
priority: expr14.subtract(65, expr14.coalesce(expr14.get(field14("symbolrank")), 20)),
|
|
14789
14844
|
text: {
|
|
14790
14845
|
color: streetsVisual.label.settlement,
|
|
14791
14846
|
haloColor: streetsVisual.label.placeHalo,
|
|
@@ -14802,17 +14857,20 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14802
14857
|
{ kind: "cubic-bezier", x1: 0.2, x2: 0.9, y1: 0, y2: 1 },
|
|
14803
14858
|
expr14.zoom(),
|
|
14804
14859
|
[
|
|
14805
|
-
[
|
|
14860
|
+
[
|
|
14861
|
+
3,
|
|
14862
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 11, [[9, 10]])
|
|
14863
|
+
],
|
|
14806
14864
|
[
|
|
14807
14865
|
6,
|
|
14808
|
-
expr14.step(expr14.coalesce(expr14.get(field14("
|
|
14866
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 14, [
|
|
14809
14867
|
[9, 12],
|
|
14810
14868
|
[12, 10]
|
|
14811
14869
|
])
|
|
14812
14870
|
],
|
|
14813
14871
|
[
|
|
14814
14872
|
8,
|
|
14815
|
-
expr14.step(expr14.coalesce(expr14.get(field14("
|
|
14873
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 16, [
|
|
14816
14874
|
[9, 14],
|
|
14817
14875
|
[12, 12],
|
|
14818
14876
|
[15, 10]
|
|
@@ -14820,7 +14878,7 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14820
14878
|
],
|
|
14821
14879
|
[
|
|
14822
14880
|
13,
|
|
14823
|
-
expr14.step(expr14.coalesce(expr14.get(field14("
|
|
14881
|
+
expr14.step(expr14.coalesce(expr14.get(field14("symbolrank")), 99), 22, [
|
|
14824
14882
|
[9, 20],
|
|
14825
14883
|
[12, 16],
|
|
14826
14884
|
[15, 14]
|
|
@@ -14844,7 +14902,7 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14844
14902
|
neighborhood: {
|
|
14845
14903
|
minZoom: 10,
|
|
14846
14904
|
maxZoom: 15,
|
|
14847
|
-
priority: expr14.subtract(65, expr14.coalesce(expr14.get(field14("
|
|
14905
|
+
priority: expr14.subtract(65, expr14.coalesce(expr14.get(field14("symbolrank")), 20)),
|
|
14848
14906
|
text: {
|
|
14849
14907
|
font: streetsVisual.font.default,
|
|
14850
14908
|
color: streetsVisual.label.neighborhood,
|
|
@@ -14852,7 +14910,7 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14852
14910
|
haloBlur: 0,
|
|
14853
14911
|
haloWidth: 1.3,
|
|
14854
14912
|
letterSpacing: expr14.match(
|
|
14855
|
-
expr14.get(field14("
|
|
14913
|
+
expr14.get(field14("type")),
|
|
14856
14914
|
[{ labels: "suburb", value: 0.15 }],
|
|
14857
14915
|
0.05
|
|
14858
14916
|
),
|
|
@@ -14866,7 +14924,7 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14866
14924
|
[
|
|
14867
14925
|
11,
|
|
14868
14926
|
expr14.match(
|
|
14869
|
-
expr14.get(field14("
|
|
14927
|
+
expr14.get(field14("type")),
|
|
14870
14928
|
[{ labels: "suburb", value: 12 }],
|
|
14871
14929
|
11.5
|
|
14872
14930
|
)
|
|
@@ -14874,7 +14932,7 @@ var streetsBase = bindOfficialMapTheme(
|
|
|
14874
14932
|
[
|
|
14875
14933
|
15,
|
|
14876
14934
|
expr14.match(
|
|
14877
|
-
expr14.get(field14("
|
|
14935
|
+
expr14.get(field14("type")),
|
|
14878
14936
|
[{ labels: "suburb", value: 16 }],
|
|
14879
14937
|
15
|
|
14880
14938
|
)
|