@seamos/map-preset 0.1.0 → 0.1.1
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/dist/index.cjs +145 -45
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +145 -45
- package/dist/index.js.map +1 -1
- package/package.json +5 -3
package/dist/index.cjs
CHANGED
|
@@ -52,46 +52,116 @@ function ensurePmtilesProtocol() {
|
|
|
52
52
|
// src/presets/basic.json
|
|
53
53
|
var basic_default = {
|
|
54
54
|
version: 8,
|
|
55
|
-
name: "Korea OMT Lite",
|
|
55
|
+
name: "Korea OMT Lite (demotiles)",
|
|
56
56
|
sources: {
|
|
57
57
|
korea: {
|
|
58
58
|
type: "vector",
|
|
59
59
|
url: "pmtiles://{{PMTILES_BASE}}/korea_v1.0.0.pmtiles"
|
|
60
|
+
},
|
|
61
|
+
demotiles: {
|
|
62
|
+
type: "vector",
|
|
63
|
+
url: "pmtiles://{{PMTILES_BASE}}/land_v1.0.0.pmtiles",
|
|
64
|
+
maxzoom: 6
|
|
60
65
|
}
|
|
61
66
|
},
|
|
62
67
|
layers: [
|
|
63
|
-
{
|
|
68
|
+
{
|
|
69
|
+
id: "bg",
|
|
70
|
+
type: "background",
|
|
71
|
+
paint: { "background-color": "#dceaf7" }
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: "countries-fill",
|
|
75
|
+
type: "fill",
|
|
76
|
+
source: "demotiles",
|
|
77
|
+
"source-layer": "countries",
|
|
78
|
+
paint: {
|
|
79
|
+
"fill-color": "#f5f2ee",
|
|
80
|
+
"fill-opacity": 1
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
id: "countries-outline",
|
|
85
|
+
type: "line",
|
|
86
|
+
source: "demotiles",
|
|
87
|
+
"source-layer": "countries",
|
|
88
|
+
paint: {
|
|
89
|
+
"line-color": "#c8bfb4",
|
|
90
|
+
"line-width": ["interpolate", ["linear"], ["zoom"], 0, 0.4, 6, 1, 10, 1.5, 14, 2],
|
|
91
|
+
"line-opacity": ["interpolate", ["linear"], ["zoom"], 0, 0.6, 8, 0.4, 14, 0.2]
|
|
92
|
+
}
|
|
93
|
+
},
|
|
64
94
|
{
|
|
65
95
|
id: "landcover",
|
|
66
96
|
type: "fill",
|
|
67
97
|
source: "korea",
|
|
68
98
|
"source-layer": "landcover",
|
|
69
|
-
paint: {
|
|
99
|
+
paint: {
|
|
100
|
+
"fill-color": [
|
|
101
|
+
"match",
|
|
102
|
+
["get", "class"],
|
|
103
|
+
"wood",
|
|
104
|
+
"#c8ddb5",
|
|
105
|
+
"grass",
|
|
106
|
+
"#d5e8c1",
|
|
107
|
+
"scrub",
|
|
108
|
+
"#cde0b8",
|
|
109
|
+
"wetland",
|
|
110
|
+
"#b8dcc8",
|
|
111
|
+
"#dae8ca"
|
|
112
|
+
],
|
|
113
|
+
"fill-opacity": 0.7
|
|
114
|
+
}
|
|
70
115
|
},
|
|
71
116
|
{
|
|
72
117
|
id: "landuse",
|
|
73
118
|
type: "fill",
|
|
74
119
|
source: "korea",
|
|
75
120
|
"source-layer": "landuse",
|
|
76
|
-
paint: {
|
|
121
|
+
paint: {
|
|
122
|
+
"fill-color": [
|
|
123
|
+
"match",
|
|
124
|
+
["get", "class"],
|
|
125
|
+
"residential",
|
|
126
|
+
"#ede6de",
|
|
127
|
+
"commercial",
|
|
128
|
+
"#e8ddd8",
|
|
129
|
+
"industrial",
|
|
130
|
+
"#e0dbd6",
|
|
131
|
+
"park",
|
|
132
|
+
"#c5e2ac",
|
|
133
|
+
"cemetery",
|
|
134
|
+
"#d2dfc5",
|
|
135
|
+
"#e8e4dc"
|
|
136
|
+
],
|
|
137
|
+
"fill-opacity": 0.85
|
|
138
|
+
}
|
|
77
139
|
},
|
|
78
140
|
{
|
|
79
|
-
id: "
|
|
141
|
+
id: "park",
|
|
80
142
|
type: "fill",
|
|
81
143
|
source: "korea",
|
|
82
|
-
"source-layer": "
|
|
83
|
-
filter: [
|
|
84
|
-
"any",
|
|
85
|
-
["==", ["get", "class"], "farmland"],
|
|
86
|
-
["==", ["get", "class"], "farm"],
|
|
87
|
-
["==", ["get", "class"], "orchard"],
|
|
88
|
-
["==", ["get", "class"], "vineyard"],
|
|
89
|
-
["==", ["get", "class"], "plant_nursery"],
|
|
90
|
-
["==", ["get", "class"], "greenhouse_horticulture"]
|
|
91
|
-
],
|
|
144
|
+
"source-layer": "park",
|
|
92
145
|
paint: {
|
|
93
|
-
"fill-color": "#
|
|
94
|
-
"fill-opacity": 0.
|
|
146
|
+
"fill-color": "#c2e0a8",
|
|
147
|
+
"fill-opacity": 0.7
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
{
|
|
151
|
+
id: "water",
|
|
152
|
+
type: "fill",
|
|
153
|
+
source: "korea",
|
|
154
|
+
"source-layer": "water",
|
|
155
|
+
paint: { "fill-color": "#a3ceed" }
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
id: "waterway",
|
|
159
|
+
type: "line",
|
|
160
|
+
source: "korea",
|
|
161
|
+
"source-layer": "waterway",
|
|
162
|
+
paint: {
|
|
163
|
+
"line-color": "#7db8de",
|
|
164
|
+
"line-width": ["interpolate", ["linear"], ["zoom"], 8, 0.4, 12, 1.8, 14, 2.5]
|
|
95
165
|
}
|
|
96
166
|
},
|
|
97
167
|
{
|
|
@@ -106,8 +176,8 @@ var basic_default = {
|
|
|
106
176
|
["==", ["get", "subclass"], "rice"]
|
|
107
177
|
],
|
|
108
178
|
paint: {
|
|
109
|
-
"fill-color": "#
|
|
110
|
-
"fill-opacity": 0.
|
|
179
|
+
"fill-color": "#d4f0de",
|
|
180
|
+
"fill-opacity": 0.85
|
|
111
181
|
}
|
|
112
182
|
},
|
|
113
183
|
{
|
|
@@ -123,30 +193,48 @@ var basic_default = {
|
|
|
123
193
|
["==", ["get", "class"], "greenhouse_horticulture"]
|
|
124
194
|
],
|
|
125
195
|
paint: {
|
|
126
|
-
"fill-color": "#
|
|
127
|
-
"fill-opacity": 0.
|
|
196
|
+
"fill-color": "#f5eed2",
|
|
197
|
+
"fill-opacity": 0.8
|
|
128
198
|
}
|
|
129
199
|
},
|
|
130
200
|
{
|
|
131
|
-
id: "
|
|
132
|
-
type: "fill",
|
|
133
|
-
source: "korea",
|
|
134
|
-
"source-layer": "park",
|
|
135
|
-
paint: { "fill-color": "#cfe8b4", "fill-opacity": 0.9 }
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
id: "water",
|
|
201
|
+
id: "landuse-farmland",
|
|
139
202
|
type: "fill",
|
|
140
203
|
source: "korea",
|
|
141
|
-
"source-layer": "
|
|
142
|
-
|
|
204
|
+
"source-layer": "landcover",
|
|
205
|
+
filter: [
|
|
206
|
+
"any",
|
|
207
|
+
["==", ["get", "class"], "farmland"],
|
|
208
|
+
["==", ["get", "class"], "farm"],
|
|
209
|
+
["==", ["get", "class"], "orchard"],
|
|
210
|
+
["==", ["get", "class"], "vineyard"],
|
|
211
|
+
["==", ["get", "class"], "plant_nursery"],
|
|
212
|
+
["==", ["get", "class"], "greenhouse_horticulture"]
|
|
213
|
+
],
|
|
214
|
+
paint: {
|
|
215
|
+
"fill-color": "rgba(235, 91, 108, 0.12)",
|
|
216
|
+
"fill-opacity": 1
|
|
217
|
+
}
|
|
143
218
|
},
|
|
144
219
|
{
|
|
145
|
-
id: "
|
|
220
|
+
id: "landuse-farmland-outline",
|
|
146
221
|
type: "line",
|
|
147
222
|
source: "korea",
|
|
148
|
-
"source-layer": "
|
|
149
|
-
|
|
223
|
+
"source-layer": "landcover",
|
|
224
|
+
filter: [
|
|
225
|
+
"any",
|
|
226
|
+
["==", ["get", "class"], "farmland"],
|
|
227
|
+
["==", ["get", "class"], "farm"],
|
|
228
|
+
["==", ["get", "class"], "orchard"],
|
|
229
|
+
["==", ["get", "class"], "vineyard"],
|
|
230
|
+
["==", ["get", "class"], "plant_nursery"],
|
|
231
|
+
["==", ["get", "class"], "greenhouse_horticulture"]
|
|
232
|
+
],
|
|
233
|
+
paint: {
|
|
234
|
+
"line-color": "#eb5b6c",
|
|
235
|
+
"line-width": ["interpolate", ["linear"], ["zoom"], 8, 0.8, 12, 1.8, 16, 2.5],
|
|
236
|
+
"line-opacity": ["interpolate", ["linear"], ["zoom"], 8, 0.7, 12, 0.9, 16, 1]
|
|
237
|
+
}
|
|
150
238
|
},
|
|
151
239
|
{
|
|
152
240
|
id: "buildings",
|
|
@@ -154,28 +242,32 @@ var basic_default = {
|
|
|
154
242
|
source: "korea",
|
|
155
243
|
"source-layer": "building",
|
|
156
244
|
minzoom: 13,
|
|
157
|
-
paint: {
|
|
245
|
+
paint: {
|
|
246
|
+
"fill-color": "#d8d3cc",
|
|
247
|
+
"fill-opacity": 0.7,
|
|
248
|
+
"fill-outline-color": "#c5bfb8"
|
|
249
|
+
}
|
|
158
250
|
},
|
|
159
251
|
{
|
|
160
|
-
id: "roads",
|
|
252
|
+
id: "roads-outline",
|
|
161
253
|
type: "line",
|
|
162
254
|
source: "korea",
|
|
163
255
|
"source-layer": "transportation",
|
|
164
256
|
paint: {
|
|
165
|
-
"line-color": "#
|
|
166
|
-
"line-width": ["interpolate", ["linear"], ["zoom"], 6, 0.
|
|
167
|
-
"line-opacity": 0.
|
|
257
|
+
"line-color": "#ccc6be",
|
|
258
|
+
"line-width": ["interpolate", ["linear"], ["zoom"], 6, 0.6, 10, 2, 14, 6],
|
|
259
|
+
"line-opacity": 0.4
|
|
168
260
|
}
|
|
169
261
|
},
|
|
170
262
|
{
|
|
171
|
-
id: "roads
|
|
263
|
+
id: "roads",
|
|
172
264
|
type: "line",
|
|
173
265
|
source: "korea",
|
|
174
266
|
"source-layer": "transportation",
|
|
175
267
|
paint: {
|
|
176
|
-
"line-color": "#
|
|
177
|
-
"line-width": ["interpolate", ["linear"], ["zoom"], 6, 0.
|
|
178
|
-
"line-opacity": 0.
|
|
268
|
+
"line-color": "#ffffff",
|
|
269
|
+
"line-width": ["interpolate", ["linear"], ["zoom"], 6, 0.3, 10, 1.4, 14, 4.5],
|
|
270
|
+
"line-opacity": 0.95
|
|
179
271
|
}
|
|
180
272
|
},
|
|
181
273
|
{
|
|
@@ -189,7 +281,11 @@ var basic_default = {
|
|
|
189
281
|
"text-size": ["interpolate", ["linear"], ["zoom"], 5, 10, 12, 14],
|
|
190
282
|
"text-allow-overlap": false
|
|
191
283
|
},
|
|
192
|
-
paint: {
|
|
284
|
+
paint: {
|
|
285
|
+
"text-color": "#3a3a3a",
|
|
286
|
+
"text-halo-color": "rgba(255,255,255,0.9)",
|
|
287
|
+
"text-halo-width": 1.4
|
|
288
|
+
}
|
|
193
289
|
},
|
|
194
290
|
{
|
|
195
291
|
id: "road-label",
|
|
@@ -203,7 +299,11 @@ var basic_default = {
|
|
|
203
299
|
"text-font": ["Noto Sans Regular"],
|
|
204
300
|
"text-size": 11
|
|
205
301
|
},
|
|
206
|
-
paint: {
|
|
302
|
+
paint: {
|
|
303
|
+
"text-color": "#555555",
|
|
304
|
+
"text-halo-color": "rgba(255,255,255,0.85)",
|
|
305
|
+
"text-halo-width": 1
|
|
306
|
+
}
|
|
207
307
|
}
|
|
208
308
|
]
|
|
209
309
|
};
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/createSeamOSMap.ts","../src/pmtiles/protocol.ts","../src/presets/basic.json","../src/presets/terrain.json","../src/presets/index.ts","../src/style/resolveStyle.ts"],"sourcesContent":["export { createSeamOSMap } from \"./createSeamOSMap\";\nexport type { CreateSeamOSMapOptions, SeamOSEnv } from \"./createSeamOSMap\";\nexport { STYLE_PRESETS } from \"./presets\";\nexport type { StylePresetName } from \"./presets\";","import maplibregl, { Map } from \"maplibre-gl\";\nimport { ensurePmtilesProtocol } from \"./pmtiles/protocol\";\nimport { STYLE_PRESETS, type StylePresetName } from \"./presets\";\nimport { resolveStyleTemplate } from \"./style/resolveStyle\";\n\nexport type SeamOSEnv = \"dev\" | \"prod\";\n\nexport type CreateSeamOSMapOptions = {\n container: string | HTMLElement;\n preset: StylePresetName;\n env: SeamOSEnv;\n maplibre?: Omit<maplibregl.MapOptions, \"container\" | \"style\">;\n onLoad?: (map: Map) => void;\n};\n\nexport function createSeamOSMap(opts: CreateSeamOSMapOptions) {\n ensurePmtilesProtocol();\n\n let pmtilesBaseUrl = opts.env === 'prod' ? \n \"/maps\"\n : \"https://seamos-lib.s3.ap-northeast-2.amazonaws.com/pmtiles\";\n \n const template = STYLE_PRESETS[opts.preset] as any;\n\n const style = resolveStyleTemplate(template, { PMTILES_BASE: pmtilesBaseUrl });\n\n const map = new maplibregl.Map({\n container: opts.container,\n style,\n ...opts.maplibre,\n });\n\n return map;\n}","import maplibregl from \"maplibre-gl\";\nimport { Protocol } from \"pmtiles\";\n\nlet installed = false;\n\nexport function ensurePmtilesProtocol() {\n if (installed) return;\n\n const protocol = new Protocol();\n maplibregl.addProtocol(\"pmtiles\", protocol.tile);\n \n installed = true;\n}","{\n \"version\": 8,\n \"name\": \"Korea OMT Lite\",\n \"sources\": {\n \"korea\": {\n \"type\": \"vector\",\n \"url\": \"pmtiles://{{PMTILES_BASE}}/korea_v1.0.0.pmtiles\"\n }\n },\n\n \"layers\": [\n { \"id\": \"bg\", \"type\": \"background\", \"paint\": { \"background-color\": \"#94c2e3\" } },\n \n {\n \"id\": \"landcover\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"paint\": { \"fill-color\": \"#d9e8c9\", \"fill-opacity\": 0.8 }\n },\n {\n \"id\": \"landuse\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": { \"fill-color\": \"#e4efd7\", \"fill-opacity\": 0.85 }\n },\n\n {\n \"id\": \"landuse-farmland\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"any\",\n [\"==\", [\"get\", \"class\"], \"farmland\"],\n [\"==\", [\"get\", \"class\"], \"farm\"],\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"class\"], \"plant_nursery\"],\n [\"==\", [\"get\", \"class\"], \"greenhouse_horticulture\"]\n ],\n \"paint\": {\n \"fill-color\": \"#eb5b6c\",\n \"fill-opacity\": 0.9\n }\n },\n\n {\n \"id\": \"landuse-paddy\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"any\",\n [\"==\", [\"get\", \"class\"], \"paddy\"],\n [\"==\", [\"get\", \"subclass\"], \"paddy\"],\n [\"==\", [\"get\", \"subclass\"], \"rice\"]\n ],\n \"paint\": {\n \"fill-color\": \"#c8f0d6\",\n \"fill-opacity\": 0.95\n }\n },\n {\n \"id\": \"landuse-agri-other\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"any\",\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"class\"], \"plant_nursery\"],\n [\"==\", [\"get\", \"class\"], \"greenhouse_horticulture\"]\n ],\n \"paint\": {\n \"fill-color\": \"#f0e9b8\",\n \"fill-opacity\": 0.9\n }\n },\n\n {\n \"id\": \"park\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"park\",\n \"paint\": { \"fill-color\": \"#cfe8b4\", \"fill-opacity\": 0.9 }\n },\n\n {\n \"id\": \"water\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"water\",\n \"paint\": { \"fill-color\": \"#a8d2f0\" }\n },\n {\n \"id\": \"waterway\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"waterway\",\n \"paint\": { \"line-color\": \"#7fbbe0\", \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 8, 0.5, 14, 2.5] }\n },\n\n {\n \"id\": \"buildings\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"building\",\n \"minzoom\": 13,\n \"paint\": { \"fill-color\": \"#d7d2cc\", \"fill-opacity\": 0.8 }\n },\n\n {\n \"id\": \"roads\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": \"#ffffff\",\n \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 6, 0.4, 10, 1.6, 14, 5],\n \"line-opacity\": 0.95\n }\n },\n\n {\n \"id\": \"roads-outline\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": \"#c9c3bb\",\n \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 6, 0.8, 10, 2.2, 14, 6],\n \"line-opacity\": 0.5\n }\n },\n\n {\n \"id\": \"place-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"place\",\n \"layout\": {\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": [\"interpolate\", [\"linear\"], [\"zoom\"], 5, 10, 12, 14],\n \"text-allow-overlap\": false\n },\n \"paint\": { \"text-color\": \"#2b2b2b\", \"text-halo-color\": \"#ffffff\", \"text-halo-width\": 1.2 }\n },\n\n {\n \"id\": \"road-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 12,\n \"layout\": {\n \"symbol-placement\": \"line\",\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"], [\"get\", \"ref\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": 11\n },\n \"paint\": { \"text-color\": \"#4b4b4b\", \"text-halo-color\": \"#ffffff\", \"text-halo-width\": 1.0 }\n }\n ]\n}","{\n \"version\": 8,\n \"name\": \"Korea Farm Basemap (OMT z<=14 + Terrain z6~12, vivid)\",\n \"sources\": {\n \"korea\": {\n \"type\": \"vector\",\n \"url\": \"pmtiles://{{PMTILES_BASE}}/korea_v1.0.0.pmtiles\"\n },\n \"terrain\": {\n \"type\": \"raster-dem\",\n \"url\": \"pmtiles://{{PMTILES_BASE}}/korea_terrain_v1.0.0.pmtiles\",\n \"tileSize\": 256,\n \"encoding\": \"mapbox\"\n }\n },\n \"terrain\": {\n \"source\": \"terrain\",\n \"exaggeration\": 1.4\n },\n \"layers\": [\n {\n \"id\": \"background\",\n \"type\": \"background\",\n \"paint\": {\n \"background-color\": \"#8ab7da\"\n }\n },\n {\n \"id\": \"hillshade\",\n \"type\": \"hillshade\",\n \"source\": \"terrain\",\n \"paint\": {\n \"hillshade-shadow-color\": \"#2b2b2b\",\n \"hillshade-highlight-color\": \"#ffffff\",\n \"hillshade-accent-color\": \"#9a9a9a\",\n \"hillshade-exaggeration\": 0.35,\n \"hillshade-illumination-anchor\": \"viewport\"\n }\n },\n {\n \"id\": \"water-fill\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"water\",\n \"paint\": {\n \"fill-color\": \"#4fb3ff\",\n \"fill-opacity\": 0.78\n }\n },\n {\n \"id\": \"landcover-base\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"paint\": {\n \"fill-color\": [\n \"match\",\n [\"get\", \"class\"],\n \"wood\",\n \"#84b07a\",\n \"grass\",\n \"#a6cf85\",\n \"scrub\",\n \"#9fc27e\",\n \"wetland\",\n \"#7fc7ad\",\n \"#b8d8a7\"\n ],\n \"fill-opacity\": 0.20\n }\n },\n {\n \"id\": \"landuse-base\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": {\n \"fill-color\": [\n \"match\",\n [\"get\", \"class\"],\n \"residential\",\n \"#e6d3bf\",\n \"commercial\",\n \"#e1c2c2\",\n \"industrial\",\n \"#d1c8c8\",\n \"park\",\n \"#98d28e\",\n \"cemetery\",\n \"#9ecaa8\",\n \"forest\",\n \"#88b97c\",\n \"farmland\",\n \"#bf1d35\",\n \"farm\",\n \"#b7ea7a\",\n \"orchard\",\n \"#9fe06a\",\n \"vineyard\",\n \"#a8df74\",\n \"#cfe3b2\"\n ],\n \"fill-opacity\": 0.90\n }\n },\n {\n \"id\": \"farm-accent\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\n \"any\",\n [\"==\", [\"get\", \"class\"], \"farmland\"],\n [\"==\", [\"get\", \"class\"], \"farm\"],\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"subclass\"], \"farmland\"],\n [\"==\", [\"get\", \"subclass\"], \"orchard\"]\n ],\n \"paint\": {\n \"fill-color\": \"#bf1d35\",\n \"fill-opacity\": 0.22\n }\n },\n {\n \"id\": \"waterway-line\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"waterway\",\n \"paint\": {\n \"line-color\": \"#1a7fe0\",\n \"line-opacity\": 0.9,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 7,\n 0.6,\n 10,\n 1.5,\n 12,\n 2.4,\n 14,\n 3.2,\n 16,\n 4.0\n ]\n }\n },\n {\n \"id\": \"transportation-casing\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": \"rgba(0,0,0,0.35)\",\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 7,\n 1.2,\n 10,\n 3.0,\n 12,\n 4.2,\n 14,\n 5.4,\n 16,\n 6.2\n ],\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"transportation-line\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": [\n \"match\",\n [\"get\", \"class\"],\n \"motorway\",\n \"#f0b24b\",\n \"trunk\",\n \"#f0b24b\",\n \"primary\",\n \"#f1c06a\",\n \"secondary\",\n \"#f4d28a\",\n \"tertiary\",\n \"#f0e0b6\",\n \"track\",\n \"#d6c08a\",\n \"path\",\n \"#d9d1c3\",\n \"#f0e0b6\"\n ],\n \"line-opacity\": 0.85,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 7,\n 0.7,\n 10,\n 2.0,\n 12,\n 2.8,\n 14,\n 3.6,\n 16,\n 4.2\n ]\n }\n },\n {\n \"id\": \"landuse-outline-glow\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": {\n \"line-color\": \"rgba(0,0,0,0.20)\",\n \"line-opacity\": 0.18,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 8,\n 1.2,\n 12,\n 2.6,\n 16,\n 4.0\n ]\n }\n },\n {\n \"id\": \"landuse-outline\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": {\n \"line-color\": \"rgba(255,255,255,0.92)\",\n \"line-opacity\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 8,\n 0.16,\n 12,\n 0.30,\n 16,\n 0.42\n ],\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 8,\n 0.35,\n 12,\n 0.95,\n 16,\n 1.4\n ]\n }\n },\n {\n \"id\": \"farm-outline\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\n \"any\",\n [\"==\", [\"get\", \"class\"], \"farmland\"],\n [\"==\", [\"get\", \"class\"], \"farm\"],\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"subclass\"], \"farmland\"],\n [\"==\", [\"get\", \"subclass\"], \"orchard\"]\n ],\n \"paint\": {\n \"line-color\": \"#bf1d35\",\n \"line-opacity\": 0.9,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 9,\n 0.7,\n 12,\n 1.5,\n 16,\n 2.4\n ]\n }\n },\n {\n \"id\": \"building-fill\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"building\",\n \"paint\": {\n \"fill-color\": \"#d7d2c9\",\n \"fill-opacity\": 0.6\n }\n },\n\n {\n \"id\": \"place-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"place\",\n \"layout\": {\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": [\"interpolate\", [\"linear\"], [\"zoom\"], 5, 10, 12, 14],\n \"text-allow-overlap\": false\n },\n \"paint\": { \"text-color\": \"#2b2b2b\", \"text-halo-color\": \"#ffffff\", \"text-halo-width\": 1.2 }\n },\n\n {\n \"id\": \"road-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 12,\n \"layout\": {\n \"symbol-placement\": \"line\",\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"], [\"get\", \"ref\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": 11\n },\n \"paint\": { \"text-color\": \"#4b4b4b\", \"text-halo-color\": \"#ffffff\", \"text-halo-width\": 1.0 }\n }\n ]\n}","import type { StyleSpecification } from \"maplibre-gl\";\nimport basic from \"./basic.json\";\nimport terrain from \"./terrain.json\";\n\nexport const STYLE_PRESETS = {\n basic: basic as StyleSpecification,\n terrain: terrain as StyleSpecification\n} as const;\n\nexport type StylePresetName = keyof typeof STYLE_PRESETS;","import type { StyleSpecification } from \"maplibre-gl\";\n\nfunction deepClone<T>(obj: T): T {\n return JSON.parse(JSON.stringify(obj));\n}\n\nfunction replaceTokensInString(s: string, tokens: Record<string, string>) {\n let out = s;\n for (const [k, v] of Object.entries(tokens)) {\n out = out.replaceAll(`{{${k}}}`, v);\n }\n\n return out;\n}\n\nfunction deepReplace(obj: any, tokens: Record<string, string>): any {\n if (typeof obj === \"string\") return replaceTokensInString(obj, tokens);\n if (Array.isArray(obj)) return obj.map((v) => deepReplace(v, tokens));\n if (obj && typeof obj === \"object\") {\n const out: any = {};\n for (const [k, v] of Object.entries(obj)) out[k] = deepReplace(v, tokens);\n \n return out;\n }\n\n return obj;\n}\n\nexport function resolveStyleTemplate(\n template: StyleSpecification,\n tokens: Record<string, string>\n): StyleSpecification {\n return deepReplace(deepClone(template), tokens) as StyleSpecification;\n}"],"mappings":"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","names":["import_maplibre_gl","maplibregl","maplibregl"]}
|
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/createSeamOSMap.ts","../src/pmtiles/protocol.ts","../src/presets/basic.json","../src/presets/terrain.json","../src/presets/index.ts","../src/style/resolveStyle.ts"],"sourcesContent":["export { createSeamOSMap } from \"./createSeamOSMap\";\nexport type { CreateSeamOSMapOptions, SeamOSEnv } from \"./createSeamOSMap\";\nexport { STYLE_PRESETS } from \"./presets\";\nexport type { StylePresetName } from \"./presets\";","import maplibregl, { Map } from \"maplibre-gl\";\nimport { ensurePmtilesProtocol } from \"./pmtiles/protocol\";\nimport { STYLE_PRESETS, type StylePresetName } from \"./presets\";\nimport { resolveStyleTemplate } from \"./style/resolveStyle\";\n\nexport type SeamOSEnv = \"dev\" | \"prod\";\n\nexport type CreateSeamOSMapOptions = {\n container: string | HTMLElement;\n preset: StylePresetName;\n env: SeamOSEnv;\n maplibre?: Omit<maplibregl.MapOptions, \"container\" | \"style\">;\n onLoad?: (map: Map) => void;\n};\n\nexport function createSeamOSMap(opts: CreateSeamOSMapOptions) {\n ensurePmtilesProtocol();\n\n let pmtilesBaseUrl = opts.env === 'prod' ? \n \"/maps\"\n : \"https://seamos-lib.s3.ap-northeast-2.amazonaws.com/pmtiles\";\n \n const template = STYLE_PRESETS[opts.preset] as any;\n\n const style = resolveStyleTemplate(template, { PMTILES_BASE: pmtilesBaseUrl });\n\n const map = new maplibregl.Map({\n container: opts.container,\n style,\n ...opts.maplibre,\n });\n\n return map;\n}","import maplibregl from \"maplibre-gl\";\nimport { Protocol } from \"pmtiles\";\n\nlet installed = false;\n\nexport function ensurePmtilesProtocol() {\n if (installed) return;\n\n const protocol = new Protocol();\n maplibregl.addProtocol(\"pmtiles\", protocol.tile);\n \n installed = true;\n}","{\n \"version\": 8,\n \"name\": \"Korea OMT Lite (demotiles)\",\n \"sources\": {\n \"korea\": {\n \"type\": \"vector\",\n \"url\": \"pmtiles://{{PMTILES_BASE}}/korea_v1.0.0.pmtiles\"\n },\n \"demotiles\": {\n \"type\": \"vector\",\n \"url\": \"pmtiles://{{PMTILES_BASE}}/land_v1.0.0.pmtiles\",\n \"maxzoom\": 6\n }\n },\n\n \"layers\": [\n {\n \"id\": \"bg\",\n \"type\": \"background\",\n \"paint\": { \"background-color\": \"#dceaf7\" }\n },\n\n {\n \"id\": \"countries-fill\",\n \"type\": \"fill\",\n \"source\": \"demotiles\",\n \"source-layer\": \"countries\",\n \"paint\": {\n \"fill-color\": \"#f5f2ee\",\n \"fill-opacity\": 1\n }\n },\n {\n \"id\": \"countries-outline\",\n \"type\": \"line\",\n \"source\": \"demotiles\",\n \"source-layer\": \"countries\",\n \"paint\": {\n \"line-color\": \"#c8bfb4\",\n \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 0, 0.4, 6, 1, 10, 1.5, 14, 2],\n \"line-opacity\": [\"interpolate\", [\"linear\"], [\"zoom\"], 0, 0.6, 8, 0.4, 14, 0.2]\n }\n },\n\n {\n \"id\": \"landcover\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"paint\": {\n \"fill-color\": [\n \"match\", [\"get\", \"class\"],\n \"wood\", \"#c8ddb5\",\n \"grass\", \"#d5e8c1\",\n \"scrub\", \"#cde0b8\",\n \"wetland\", \"#b8dcc8\",\n \"#dae8ca\"\n ],\n \"fill-opacity\": 0.7\n }\n },\n {\n \"id\": \"landuse\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": {\n \"fill-color\": [\n \"match\", [\"get\", \"class\"],\n \"residential\", \"#ede6de\",\n \"commercial\", \"#e8ddd8\",\n \"industrial\", \"#e0dbd6\",\n \"park\", \"#c5e2ac\",\n \"cemetery\", \"#d2dfc5\",\n \"#e8e4dc\"\n ],\n \"fill-opacity\": 0.85\n }\n },\n\n {\n \"id\": \"park\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"park\",\n \"paint\": {\n \"fill-color\": \"#c2e0a8\",\n \"fill-opacity\": 0.7\n }\n },\n\n {\n \"id\": \"water\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"water\",\n \"paint\": { \"fill-color\": \"#a3ceed\" }\n },\n {\n \"id\": \"waterway\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"waterway\",\n \"paint\": {\n \"line-color\": \"#7db8de\",\n \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 8, 0.4, 12, 1.8, 14, 2.5]\n }\n },\n\n {\n \"id\": \"landuse-paddy\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"any\",\n [\"==\", [\"get\", \"class\"], \"paddy\"],\n [\"==\", [\"get\", \"subclass\"], \"paddy\"],\n [\"==\", [\"get\", \"subclass\"], \"rice\"]\n ],\n \"paint\": {\n \"fill-color\": \"#d4f0de\",\n \"fill-opacity\": 0.85\n }\n },\n\n {\n \"id\": \"landuse-agri-other\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"any\",\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"class\"], \"plant_nursery\"],\n [\"==\", [\"get\", \"class\"], \"greenhouse_horticulture\"]\n ],\n \"paint\": {\n \"fill-color\": \"#f5eed2\",\n \"fill-opacity\": 0.8\n }\n },\n\n {\n \"id\": \"landuse-farmland\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"any\",\n [\"==\", [\"get\", \"class\"], \"farmland\"],\n [\"==\", [\"get\", \"class\"], \"farm\"],\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"class\"], \"plant_nursery\"],\n [\"==\", [\"get\", \"class\"], \"greenhouse_horticulture\"]\n ],\n \"paint\": {\n \"fill-color\": \"rgba(235, 91, 108, 0.12)\",\n \"fill-opacity\": 1\n }\n },\n {\n \"id\": \"landuse-farmland-outline\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"any\",\n [\"==\", [\"get\", \"class\"], \"farmland\"],\n [\"==\", [\"get\", \"class\"], \"farm\"],\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"class\"], \"plant_nursery\"],\n [\"==\", [\"get\", \"class\"], \"greenhouse_horticulture\"]\n ],\n \"paint\": {\n \"line-color\": \"#eb5b6c\",\n \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 8, 0.8, 12, 1.8, 16, 2.5],\n \"line-opacity\": [\"interpolate\", [\"linear\"], [\"zoom\"], 8, 0.7, 12, 0.9, 16, 1]\n }\n },\n\n {\n \"id\": \"buildings\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"building\",\n \"minzoom\": 13,\n \"paint\": {\n \"fill-color\": \"#d8d3cc\",\n \"fill-opacity\": 0.7,\n \"fill-outline-color\": \"#c5bfb8\"\n }\n },\n\n {\n \"id\": \"roads-outline\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": \"#ccc6be\",\n \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 6, 0.6, 10, 2, 14, 6],\n \"line-opacity\": 0.4\n }\n },\n {\n \"id\": \"roads\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": \"#ffffff\",\n \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 6, 0.3, 10, 1.4, 14, 4.5],\n \"line-opacity\": 0.95\n }\n },\n\n {\n \"id\": \"place-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"place\",\n \"layout\": {\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": [\"interpolate\", [\"linear\"], [\"zoom\"], 5, 10, 12, 14],\n \"text-allow-overlap\": false\n },\n \"paint\": {\n \"text-color\": \"#3a3a3a\",\n \"text-halo-color\": \"rgba(255,255,255,0.9)\",\n \"text-halo-width\": 1.4\n }\n },\n\n {\n \"id\": \"road-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 12,\n \"layout\": {\n \"symbol-placement\": \"line\",\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"], [\"get\", \"ref\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": 11\n },\n \"paint\": {\n \"text-color\": \"#555555\",\n \"text-halo-color\": \"rgba(255,255,255,0.85)\",\n \"text-halo-width\": 1.0\n }\n }\n ]\n}","{\n \"version\": 8,\n \"name\": \"Korea Farm Basemap (OMT z<=14 + Terrain z6~12, vivid)\",\n \"sources\": {\n \"korea\": {\n \"type\": \"vector\",\n \"url\": \"pmtiles://{{PMTILES_BASE}}/korea_v1.0.0.pmtiles\"\n },\n \"terrain\": {\n \"type\": \"raster-dem\",\n \"url\": \"pmtiles://{{PMTILES_BASE}}/korea_terrain_v1.0.0.pmtiles\",\n \"tileSize\": 256,\n \"encoding\": \"mapbox\"\n }\n },\n \"terrain\": {\n \"source\": \"terrain\",\n \"exaggeration\": 1.4\n },\n \"layers\": [\n {\n \"id\": \"background\",\n \"type\": \"background\",\n \"paint\": {\n \"background-color\": \"#8ab7da\"\n }\n },\n {\n \"id\": \"hillshade\",\n \"type\": \"hillshade\",\n \"source\": \"terrain\",\n \"paint\": {\n \"hillshade-shadow-color\": \"#2b2b2b\",\n \"hillshade-highlight-color\": \"#ffffff\",\n \"hillshade-accent-color\": \"#9a9a9a\",\n \"hillshade-exaggeration\": 0.35,\n \"hillshade-illumination-anchor\": \"viewport\"\n }\n },\n {\n \"id\": \"water-fill\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"water\",\n \"paint\": {\n \"fill-color\": \"#4fb3ff\",\n \"fill-opacity\": 0.78\n }\n },\n {\n \"id\": \"landcover-base\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"paint\": {\n \"fill-color\": [\n \"match\",\n [\"get\", \"class\"],\n \"wood\",\n \"#84b07a\",\n \"grass\",\n \"#a6cf85\",\n \"scrub\",\n \"#9fc27e\",\n \"wetland\",\n \"#7fc7ad\",\n \"#b8d8a7\"\n ],\n \"fill-opacity\": 0.20\n }\n },\n {\n \"id\": \"landuse-base\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": {\n \"fill-color\": [\n \"match\",\n [\"get\", \"class\"],\n \"residential\",\n \"#e6d3bf\",\n \"commercial\",\n \"#e1c2c2\",\n \"industrial\",\n \"#d1c8c8\",\n \"park\",\n \"#98d28e\",\n \"cemetery\",\n \"#9ecaa8\",\n \"forest\",\n \"#88b97c\",\n \"farmland\",\n \"#bf1d35\",\n \"farm\",\n \"#b7ea7a\",\n \"orchard\",\n \"#9fe06a\",\n \"vineyard\",\n \"#a8df74\",\n \"#cfe3b2\"\n ],\n \"fill-opacity\": 0.90\n }\n },\n {\n \"id\": \"farm-accent\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\n \"any\",\n [\"==\", [\"get\", \"class\"], \"farmland\"],\n [\"==\", [\"get\", \"class\"], \"farm\"],\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"subclass\"], \"farmland\"],\n [\"==\", [\"get\", \"subclass\"], \"orchard\"]\n ],\n \"paint\": {\n \"fill-color\": \"#bf1d35\",\n \"fill-opacity\": 0.22\n }\n },\n {\n \"id\": \"waterway-line\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"waterway\",\n \"paint\": {\n \"line-color\": \"#1a7fe0\",\n \"line-opacity\": 0.9,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 7,\n 0.6,\n 10,\n 1.5,\n 12,\n 2.4,\n 14,\n 3.2,\n 16,\n 4.0\n ]\n }\n },\n {\n \"id\": \"transportation-casing\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": \"rgba(0,0,0,0.35)\",\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 7,\n 1.2,\n 10,\n 3.0,\n 12,\n 4.2,\n 14,\n 5.4,\n 16,\n 6.2\n ],\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"transportation-line\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": [\n \"match\",\n [\"get\", \"class\"],\n \"motorway\",\n \"#f0b24b\",\n \"trunk\",\n \"#f0b24b\",\n \"primary\",\n \"#f1c06a\",\n \"secondary\",\n \"#f4d28a\",\n \"tertiary\",\n \"#f0e0b6\",\n \"track\",\n \"#d6c08a\",\n \"path\",\n \"#d9d1c3\",\n \"#f0e0b6\"\n ],\n \"line-opacity\": 0.85,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 7,\n 0.7,\n 10,\n 2.0,\n 12,\n 2.8,\n 14,\n 3.6,\n 16,\n 4.2\n ]\n }\n },\n {\n \"id\": \"landuse-outline-glow\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": {\n \"line-color\": \"rgba(0,0,0,0.20)\",\n \"line-opacity\": 0.18,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 8,\n 1.2,\n 12,\n 2.6,\n 16,\n 4.0\n ]\n }\n },\n {\n \"id\": \"landuse-outline\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": {\n \"line-color\": \"rgba(255,255,255,0.92)\",\n \"line-opacity\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 8,\n 0.16,\n 12,\n 0.30,\n 16,\n 0.42\n ],\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 8,\n 0.35,\n 12,\n 0.95,\n 16,\n 1.4\n ]\n }\n },\n {\n \"id\": \"farm-outline\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\n \"any\",\n [\"==\", [\"get\", \"class\"], \"farmland\"],\n [\"==\", [\"get\", \"class\"], \"farm\"],\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"subclass\"], \"farmland\"],\n [\"==\", [\"get\", \"subclass\"], \"orchard\"]\n ],\n \"paint\": {\n \"line-color\": \"#bf1d35\",\n \"line-opacity\": 0.9,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 9,\n 0.7,\n 12,\n 1.5,\n 16,\n 2.4\n ]\n }\n },\n {\n \"id\": \"building-fill\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"building\",\n \"paint\": {\n \"fill-color\": \"#d7d2c9\",\n \"fill-opacity\": 0.6\n }\n },\n\n {\n \"id\": \"place-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"place\",\n \"layout\": {\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": [\"interpolate\", [\"linear\"], [\"zoom\"], 5, 10, 12, 14],\n \"text-allow-overlap\": false\n },\n \"paint\": { \"text-color\": \"#2b2b2b\", \"text-halo-color\": \"#ffffff\", \"text-halo-width\": 1.2 }\n },\n\n {\n \"id\": \"road-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 12,\n \"layout\": {\n \"symbol-placement\": \"line\",\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"], [\"get\", \"ref\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": 11\n },\n \"paint\": { \"text-color\": \"#4b4b4b\", \"text-halo-color\": \"#ffffff\", \"text-halo-width\": 1.0 }\n }\n ]\n}","import type { StyleSpecification } from \"maplibre-gl\";\nimport basic from \"./basic.json\";\nimport terrain from \"./terrain.json\";\n\nexport const STYLE_PRESETS = {\n basic: basic as StyleSpecification,\n terrain: terrain as StyleSpecification\n} as const;\n\nexport type StylePresetName = keyof typeof STYLE_PRESETS;","import type { StyleSpecification } from \"maplibre-gl\";\n\nfunction deepClone<T>(obj: T): T {\n return JSON.parse(JSON.stringify(obj));\n}\n\nfunction replaceTokensInString(s: string, tokens: Record<string, string>) {\n let out = s;\n for (const [k, v] of Object.entries(tokens)) {\n out = out.replaceAll(`{{${k}}}`, v);\n }\n\n return out;\n}\n\nfunction deepReplace(obj: any, tokens: Record<string, string>): any {\n if (typeof obj === \"string\") return replaceTokensInString(obj, tokens);\n if (Array.isArray(obj)) return obj.map((v) => deepReplace(v, tokens));\n if (obj && typeof obj === \"object\") {\n const out: any = {};\n for (const [k, v] of Object.entries(obj)) out[k] = deepReplace(v, tokens);\n \n return out;\n }\n\n return obj;\n}\n\nexport function resolveStyleTemplate(\n template: StyleSpecification,\n tokens: Record<string, string>\n): StyleSpecification {\n return deepReplace(deepClone(template), tokens) as StyleSpecification;\n}"],"mappings":"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","names":["import_maplibre_gl","maplibregl","maplibregl"]}
|
package/dist/index.js
CHANGED
|
@@ -15,46 +15,116 @@ function ensurePmtilesProtocol() {
|
|
|
15
15
|
// src/presets/basic.json
|
|
16
16
|
var basic_default = {
|
|
17
17
|
version: 8,
|
|
18
|
-
name: "Korea OMT Lite",
|
|
18
|
+
name: "Korea OMT Lite (demotiles)",
|
|
19
19
|
sources: {
|
|
20
20
|
korea: {
|
|
21
21
|
type: "vector",
|
|
22
22
|
url: "pmtiles://{{PMTILES_BASE}}/korea_v1.0.0.pmtiles"
|
|
23
|
+
},
|
|
24
|
+
demotiles: {
|
|
25
|
+
type: "vector",
|
|
26
|
+
url: "pmtiles://{{PMTILES_BASE}}/land_v1.0.0.pmtiles",
|
|
27
|
+
maxzoom: 6
|
|
23
28
|
}
|
|
24
29
|
},
|
|
25
30
|
layers: [
|
|
26
|
-
{
|
|
31
|
+
{
|
|
32
|
+
id: "bg",
|
|
33
|
+
type: "background",
|
|
34
|
+
paint: { "background-color": "#dceaf7" }
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
id: "countries-fill",
|
|
38
|
+
type: "fill",
|
|
39
|
+
source: "demotiles",
|
|
40
|
+
"source-layer": "countries",
|
|
41
|
+
paint: {
|
|
42
|
+
"fill-color": "#f5f2ee",
|
|
43
|
+
"fill-opacity": 1
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
id: "countries-outline",
|
|
48
|
+
type: "line",
|
|
49
|
+
source: "demotiles",
|
|
50
|
+
"source-layer": "countries",
|
|
51
|
+
paint: {
|
|
52
|
+
"line-color": "#c8bfb4",
|
|
53
|
+
"line-width": ["interpolate", ["linear"], ["zoom"], 0, 0.4, 6, 1, 10, 1.5, 14, 2],
|
|
54
|
+
"line-opacity": ["interpolate", ["linear"], ["zoom"], 0, 0.6, 8, 0.4, 14, 0.2]
|
|
55
|
+
}
|
|
56
|
+
},
|
|
27
57
|
{
|
|
28
58
|
id: "landcover",
|
|
29
59
|
type: "fill",
|
|
30
60
|
source: "korea",
|
|
31
61
|
"source-layer": "landcover",
|
|
32
|
-
paint: {
|
|
62
|
+
paint: {
|
|
63
|
+
"fill-color": [
|
|
64
|
+
"match",
|
|
65
|
+
["get", "class"],
|
|
66
|
+
"wood",
|
|
67
|
+
"#c8ddb5",
|
|
68
|
+
"grass",
|
|
69
|
+
"#d5e8c1",
|
|
70
|
+
"scrub",
|
|
71
|
+
"#cde0b8",
|
|
72
|
+
"wetland",
|
|
73
|
+
"#b8dcc8",
|
|
74
|
+
"#dae8ca"
|
|
75
|
+
],
|
|
76
|
+
"fill-opacity": 0.7
|
|
77
|
+
}
|
|
33
78
|
},
|
|
34
79
|
{
|
|
35
80
|
id: "landuse",
|
|
36
81
|
type: "fill",
|
|
37
82
|
source: "korea",
|
|
38
83
|
"source-layer": "landuse",
|
|
39
|
-
paint: {
|
|
84
|
+
paint: {
|
|
85
|
+
"fill-color": [
|
|
86
|
+
"match",
|
|
87
|
+
["get", "class"],
|
|
88
|
+
"residential",
|
|
89
|
+
"#ede6de",
|
|
90
|
+
"commercial",
|
|
91
|
+
"#e8ddd8",
|
|
92
|
+
"industrial",
|
|
93
|
+
"#e0dbd6",
|
|
94
|
+
"park",
|
|
95
|
+
"#c5e2ac",
|
|
96
|
+
"cemetery",
|
|
97
|
+
"#d2dfc5",
|
|
98
|
+
"#e8e4dc"
|
|
99
|
+
],
|
|
100
|
+
"fill-opacity": 0.85
|
|
101
|
+
}
|
|
40
102
|
},
|
|
41
103
|
{
|
|
42
|
-
id: "
|
|
104
|
+
id: "park",
|
|
43
105
|
type: "fill",
|
|
44
106
|
source: "korea",
|
|
45
|
-
"source-layer": "
|
|
46
|
-
filter: [
|
|
47
|
-
"any",
|
|
48
|
-
["==", ["get", "class"], "farmland"],
|
|
49
|
-
["==", ["get", "class"], "farm"],
|
|
50
|
-
["==", ["get", "class"], "orchard"],
|
|
51
|
-
["==", ["get", "class"], "vineyard"],
|
|
52
|
-
["==", ["get", "class"], "plant_nursery"],
|
|
53
|
-
["==", ["get", "class"], "greenhouse_horticulture"]
|
|
54
|
-
],
|
|
107
|
+
"source-layer": "park",
|
|
55
108
|
paint: {
|
|
56
|
-
"fill-color": "#
|
|
57
|
-
"fill-opacity": 0.
|
|
109
|
+
"fill-color": "#c2e0a8",
|
|
110
|
+
"fill-opacity": 0.7
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
id: "water",
|
|
115
|
+
type: "fill",
|
|
116
|
+
source: "korea",
|
|
117
|
+
"source-layer": "water",
|
|
118
|
+
paint: { "fill-color": "#a3ceed" }
|
|
119
|
+
},
|
|
120
|
+
{
|
|
121
|
+
id: "waterway",
|
|
122
|
+
type: "line",
|
|
123
|
+
source: "korea",
|
|
124
|
+
"source-layer": "waterway",
|
|
125
|
+
paint: {
|
|
126
|
+
"line-color": "#7db8de",
|
|
127
|
+
"line-width": ["interpolate", ["linear"], ["zoom"], 8, 0.4, 12, 1.8, 14, 2.5]
|
|
58
128
|
}
|
|
59
129
|
},
|
|
60
130
|
{
|
|
@@ -69,8 +139,8 @@ var basic_default = {
|
|
|
69
139
|
["==", ["get", "subclass"], "rice"]
|
|
70
140
|
],
|
|
71
141
|
paint: {
|
|
72
|
-
"fill-color": "#
|
|
73
|
-
"fill-opacity": 0.
|
|
142
|
+
"fill-color": "#d4f0de",
|
|
143
|
+
"fill-opacity": 0.85
|
|
74
144
|
}
|
|
75
145
|
},
|
|
76
146
|
{
|
|
@@ -86,30 +156,48 @@ var basic_default = {
|
|
|
86
156
|
["==", ["get", "class"], "greenhouse_horticulture"]
|
|
87
157
|
],
|
|
88
158
|
paint: {
|
|
89
|
-
"fill-color": "#
|
|
90
|
-
"fill-opacity": 0.
|
|
159
|
+
"fill-color": "#f5eed2",
|
|
160
|
+
"fill-opacity": 0.8
|
|
91
161
|
}
|
|
92
162
|
},
|
|
93
163
|
{
|
|
94
|
-
id: "
|
|
95
|
-
type: "fill",
|
|
96
|
-
source: "korea",
|
|
97
|
-
"source-layer": "park",
|
|
98
|
-
paint: { "fill-color": "#cfe8b4", "fill-opacity": 0.9 }
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
id: "water",
|
|
164
|
+
id: "landuse-farmland",
|
|
102
165
|
type: "fill",
|
|
103
166
|
source: "korea",
|
|
104
|
-
"source-layer": "
|
|
105
|
-
|
|
167
|
+
"source-layer": "landcover",
|
|
168
|
+
filter: [
|
|
169
|
+
"any",
|
|
170
|
+
["==", ["get", "class"], "farmland"],
|
|
171
|
+
["==", ["get", "class"], "farm"],
|
|
172
|
+
["==", ["get", "class"], "orchard"],
|
|
173
|
+
["==", ["get", "class"], "vineyard"],
|
|
174
|
+
["==", ["get", "class"], "plant_nursery"],
|
|
175
|
+
["==", ["get", "class"], "greenhouse_horticulture"]
|
|
176
|
+
],
|
|
177
|
+
paint: {
|
|
178
|
+
"fill-color": "rgba(235, 91, 108, 0.12)",
|
|
179
|
+
"fill-opacity": 1
|
|
180
|
+
}
|
|
106
181
|
},
|
|
107
182
|
{
|
|
108
|
-
id: "
|
|
183
|
+
id: "landuse-farmland-outline",
|
|
109
184
|
type: "line",
|
|
110
185
|
source: "korea",
|
|
111
|
-
"source-layer": "
|
|
112
|
-
|
|
186
|
+
"source-layer": "landcover",
|
|
187
|
+
filter: [
|
|
188
|
+
"any",
|
|
189
|
+
["==", ["get", "class"], "farmland"],
|
|
190
|
+
["==", ["get", "class"], "farm"],
|
|
191
|
+
["==", ["get", "class"], "orchard"],
|
|
192
|
+
["==", ["get", "class"], "vineyard"],
|
|
193
|
+
["==", ["get", "class"], "plant_nursery"],
|
|
194
|
+
["==", ["get", "class"], "greenhouse_horticulture"]
|
|
195
|
+
],
|
|
196
|
+
paint: {
|
|
197
|
+
"line-color": "#eb5b6c",
|
|
198
|
+
"line-width": ["interpolate", ["linear"], ["zoom"], 8, 0.8, 12, 1.8, 16, 2.5],
|
|
199
|
+
"line-opacity": ["interpolate", ["linear"], ["zoom"], 8, 0.7, 12, 0.9, 16, 1]
|
|
200
|
+
}
|
|
113
201
|
},
|
|
114
202
|
{
|
|
115
203
|
id: "buildings",
|
|
@@ -117,28 +205,32 @@ var basic_default = {
|
|
|
117
205
|
source: "korea",
|
|
118
206
|
"source-layer": "building",
|
|
119
207
|
minzoom: 13,
|
|
120
|
-
paint: {
|
|
208
|
+
paint: {
|
|
209
|
+
"fill-color": "#d8d3cc",
|
|
210
|
+
"fill-opacity": 0.7,
|
|
211
|
+
"fill-outline-color": "#c5bfb8"
|
|
212
|
+
}
|
|
121
213
|
},
|
|
122
214
|
{
|
|
123
|
-
id: "roads",
|
|
215
|
+
id: "roads-outline",
|
|
124
216
|
type: "line",
|
|
125
217
|
source: "korea",
|
|
126
218
|
"source-layer": "transportation",
|
|
127
219
|
paint: {
|
|
128
|
-
"line-color": "#
|
|
129
|
-
"line-width": ["interpolate", ["linear"], ["zoom"], 6, 0.
|
|
130
|
-
"line-opacity": 0.
|
|
220
|
+
"line-color": "#ccc6be",
|
|
221
|
+
"line-width": ["interpolate", ["linear"], ["zoom"], 6, 0.6, 10, 2, 14, 6],
|
|
222
|
+
"line-opacity": 0.4
|
|
131
223
|
}
|
|
132
224
|
},
|
|
133
225
|
{
|
|
134
|
-
id: "roads
|
|
226
|
+
id: "roads",
|
|
135
227
|
type: "line",
|
|
136
228
|
source: "korea",
|
|
137
229
|
"source-layer": "transportation",
|
|
138
230
|
paint: {
|
|
139
|
-
"line-color": "#
|
|
140
|
-
"line-width": ["interpolate", ["linear"], ["zoom"], 6, 0.
|
|
141
|
-
"line-opacity": 0.
|
|
231
|
+
"line-color": "#ffffff",
|
|
232
|
+
"line-width": ["interpolate", ["linear"], ["zoom"], 6, 0.3, 10, 1.4, 14, 4.5],
|
|
233
|
+
"line-opacity": 0.95
|
|
142
234
|
}
|
|
143
235
|
},
|
|
144
236
|
{
|
|
@@ -152,7 +244,11 @@ var basic_default = {
|
|
|
152
244
|
"text-size": ["interpolate", ["linear"], ["zoom"], 5, 10, 12, 14],
|
|
153
245
|
"text-allow-overlap": false
|
|
154
246
|
},
|
|
155
|
-
paint: {
|
|
247
|
+
paint: {
|
|
248
|
+
"text-color": "#3a3a3a",
|
|
249
|
+
"text-halo-color": "rgba(255,255,255,0.9)",
|
|
250
|
+
"text-halo-width": 1.4
|
|
251
|
+
}
|
|
156
252
|
},
|
|
157
253
|
{
|
|
158
254
|
id: "road-label",
|
|
@@ -166,7 +262,11 @@ var basic_default = {
|
|
|
166
262
|
"text-font": ["Noto Sans Regular"],
|
|
167
263
|
"text-size": 11
|
|
168
264
|
},
|
|
169
|
-
paint: {
|
|
265
|
+
paint: {
|
|
266
|
+
"text-color": "#555555",
|
|
267
|
+
"text-halo-color": "rgba(255,255,255,0.85)",
|
|
268
|
+
"text-halo-width": 1
|
|
269
|
+
}
|
|
170
270
|
}
|
|
171
271
|
]
|
|
172
272
|
};
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/createSeamOSMap.ts","../src/pmtiles/protocol.ts","../src/presets/basic.json","../src/presets/terrain.json","../src/presets/index.ts","../src/style/resolveStyle.ts"],"sourcesContent":["import maplibregl, { Map } from \"maplibre-gl\";\nimport { ensurePmtilesProtocol } from \"./pmtiles/protocol\";\nimport { STYLE_PRESETS, type StylePresetName } from \"./presets\";\nimport { resolveStyleTemplate } from \"./style/resolveStyle\";\n\nexport type SeamOSEnv = \"dev\" | \"prod\";\n\nexport type CreateSeamOSMapOptions = {\n container: string | HTMLElement;\n preset: StylePresetName;\n env: SeamOSEnv;\n maplibre?: Omit<maplibregl.MapOptions, \"container\" | \"style\">;\n onLoad?: (map: Map) => void;\n};\n\nexport function createSeamOSMap(opts: CreateSeamOSMapOptions) {\n ensurePmtilesProtocol();\n\n let pmtilesBaseUrl = opts.env === 'prod' ? \n \"/maps\"\n : \"https://seamos-lib.s3.ap-northeast-2.amazonaws.com/pmtiles\";\n \n const template = STYLE_PRESETS[opts.preset] as any;\n\n const style = resolveStyleTemplate(template, { PMTILES_BASE: pmtilesBaseUrl });\n\n const map = new maplibregl.Map({\n container: opts.container,\n style,\n ...opts.maplibre,\n });\n\n return map;\n}","import maplibregl from \"maplibre-gl\";\nimport { Protocol } from \"pmtiles\";\n\nlet installed = false;\n\nexport function ensurePmtilesProtocol() {\n if (installed) return;\n\n const protocol = new Protocol();\n maplibregl.addProtocol(\"pmtiles\", protocol.tile);\n \n installed = true;\n}","{\n \"version\": 8,\n \"name\": \"Korea OMT Lite\",\n \"sources\": {\n \"korea\": {\n \"type\": \"vector\",\n \"url\": \"pmtiles://{{PMTILES_BASE}}/korea_v1.0.0.pmtiles\"\n }\n },\n\n \"layers\": [\n { \"id\": \"bg\", \"type\": \"background\", \"paint\": { \"background-color\": \"#94c2e3\" } },\n \n {\n \"id\": \"landcover\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"paint\": { \"fill-color\": \"#d9e8c9\", \"fill-opacity\": 0.8 }\n },\n {\n \"id\": \"landuse\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": { \"fill-color\": \"#e4efd7\", \"fill-opacity\": 0.85 }\n },\n\n {\n \"id\": \"landuse-farmland\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"any\",\n [\"==\", [\"get\", \"class\"], \"farmland\"],\n [\"==\", [\"get\", \"class\"], \"farm\"],\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"class\"], \"plant_nursery\"],\n [\"==\", [\"get\", \"class\"], \"greenhouse_horticulture\"]\n ],\n \"paint\": {\n \"fill-color\": \"#eb5b6c\",\n \"fill-opacity\": 0.9\n }\n },\n\n {\n \"id\": \"landuse-paddy\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"any\",\n [\"==\", [\"get\", \"class\"], \"paddy\"],\n [\"==\", [\"get\", \"subclass\"], \"paddy\"],\n [\"==\", [\"get\", \"subclass\"], \"rice\"]\n ],\n \"paint\": {\n \"fill-color\": \"#c8f0d6\",\n \"fill-opacity\": 0.95\n }\n },\n {\n \"id\": \"landuse-agri-other\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"any\",\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"class\"], \"plant_nursery\"],\n [\"==\", [\"get\", \"class\"], \"greenhouse_horticulture\"]\n ],\n \"paint\": {\n \"fill-color\": \"#f0e9b8\",\n \"fill-opacity\": 0.9\n }\n },\n\n {\n \"id\": \"park\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"park\",\n \"paint\": { \"fill-color\": \"#cfe8b4\", \"fill-opacity\": 0.9 }\n },\n\n {\n \"id\": \"water\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"water\",\n \"paint\": { \"fill-color\": \"#a8d2f0\" }\n },\n {\n \"id\": \"waterway\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"waterway\",\n \"paint\": { \"line-color\": \"#7fbbe0\", \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 8, 0.5, 14, 2.5] }\n },\n\n {\n \"id\": \"buildings\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"building\",\n \"minzoom\": 13,\n \"paint\": { \"fill-color\": \"#d7d2cc\", \"fill-opacity\": 0.8 }\n },\n\n {\n \"id\": \"roads\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": \"#ffffff\",\n \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 6, 0.4, 10, 1.6, 14, 5],\n \"line-opacity\": 0.95\n }\n },\n\n {\n \"id\": \"roads-outline\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": \"#c9c3bb\",\n \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 6, 0.8, 10, 2.2, 14, 6],\n \"line-opacity\": 0.5\n }\n },\n\n {\n \"id\": \"place-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"place\",\n \"layout\": {\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": [\"interpolate\", [\"linear\"], [\"zoom\"], 5, 10, 12, 14],\n \"text-allow-overlap\": false\n },\n \"paint\": { \"text-color\": \"#2b2b2b\", \"text-halo-color\": \"#ffffff\", \"text-halo-width\": 1.2 }\n },\n\n {\n \"id\": \"road-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 12,\n \"layout\": {\n \"symbol-placement\": \"line\",\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"], [\"get\", \"ref\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": 11\n },\n \"paint\": { \"text-color\": \"#4b4b4b\", \"text-halo-color\": \"#ffffff\", \"text-halo-width\": 1.0 }\n }\n ]\n}","{\n \"version\": 8,\n \"name\": \"Korea Farm Basemap (OMT z<=14 + Terrain z6~12, vivid)\",\n \"sources\": {\n \"korea\": {\n \"type\": \"vector\",\n \"url\": \"pmtiles://{{PMTILES_BASE}}/korea_v1.0.0.pmtiles\"\n },\n \"terrain\": {\n \"type\": \"raster-dem\",\n \"url\": \"pmtiles://{{PMTILES_BASE}}/korea_terrain_v1.0.0.pmtiles\",\n \"tileSize\": 256,\n \"encoding\": \"mapbox\"\n }\n },\n \"terrain\": {\n \"source\": \"terrain\",\n \"exaggeration\": 1.4\n },\n \"layers\": [\n {\n \"id\": \"background\",\n \"type\": \"background\",\n \"paint\": {\n \"background-color\": \"#8ab7da\"\n }\n },\n {\n \"id\": \"hillshade\",\n \"type\": \"hillshade\",\n \"source\": \"terrain\",\n \"paint\": {\n \"hillshade-shadow-color\": \"#2b2b2b\",\n \"hillshade-highlight-color\": \"#ffffff\",\n \"hillshade-accent-color\": \"#9a9a9a\",\n \"hillshade-exaggeration\": 0.35,\n \"hillshade-illumination-anchor\": \"viewport\"\n }\n },\n {\n \"id\": \"water-fill\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"water\",\n \"paint\": {\n \"fill-color\": \"#4fb3ff\",\n \"fill-opacity\": 0.78\n }\n },\n {\n \"id\": \"landcover-base\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"paint\": {\n \"fill-color\": [\n \"match\",\n [\"get\", \"class\"],\n \"wood\",\n \"#84b07a\",\n \"grass\",\n \"#a6cf85\",\n \"scrub\",\n \"#9fc27e\",\n \"wetland\",\n \"#7fc7ad\",\n \"#b8d8a7\"\n ],\n \"fill-opacity\": 0.20\n }\n },\n {\n \"id\": \"landuse-base\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": {\n \"fill-color\": [\n \"match\",\n [\"get\", \"class\"],\n \"residential\",\n \"#e6d3bf\",\n \"commercial\",\n \"#e1c2c2\",\n \"industrial\",\n \"#d1c8c8\",\n \"park\",\n \"#98d28e\",\n \"cemetery\",\n \"#9ecaa8\",\n \"forest\",\n \"#88b97c\",\n \"farmland\",\n \"#bf1d35\",\n \"farm\",\n \"#b7ea7a\",\n \"orchard\",\n \"#9fe06a\",\n \"vineyard\",\n \"#a8df74\",\n \"#cfe3b2\"\n ],\n \"fill-opacity\": 0.90\n }\n },\n {\n \"id\": \"farm-accent\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\n \"any\",\n [\"==\", [\"get\", \"class\"], \"farmland\"],\n [\"==\", [\"get\", \"class\"], \"farm\"],\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"subclass\"], \"farmland\"],\n [\"==\", [\"get\", \"subclass\"], \"orchard\"]\n ],\n \"paint\": {\n \"fill-color\": \"#bf1d35\",\n \"fill-opacity\": 0.22\n }\n },\n {\n \"id\": \"waterway-line\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"waterway\",\n \"paint\": {\n \"line-color\": \"#1a7fe0\",\n \"line-opacity\": 0.9,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 7,\n 0.6,\n 10,\n 1.5,\n 12,\n 2.4,\n 14,\n 3.2,\n 16,\n 4.0\n ]\n }\n },\n {\n \"id\": \"transportation-casing\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": \"rgba(0,0,0,0.35)\",\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 7,\n 1.2,\n 10,\n 3.0,\n 12,\n 4.2,\n 14,\n 5.4,\n 16,\n 6.2\n ],\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"transportation-line\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": [\n \"match\",\n [\"get\", \"class\"],\n \"motorway\",\n \"#f0b24b\",\n \"trunk\",\n \"#f0b24b\",\n \"primary\",\n \"#f1c06a\",\n \"secondary\",\n \"#f4d28a\",\n \"tertiary\",\n \"#f0e0b6\",\n \"track\",\n \"#d6c08a\",\n \"path\",\n \"#d9d1c3\",\n \"#f0e0b6\"\n ],\n \"line-opacity\": 0.85,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 7,\n 0.7,\n 10,\n 2.0,\n 12,\n 2.8,\n 14,\n 3.6,\n 16,\n 4.2\n ]\n }\n },\n {\n \"id\": \"landuse-outline-glow\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": {\n \"line-color\": \"rgba(0,0,0,0.20)\",\n \"line-opacity\": 0.18,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 8,\n 1.2,\n 12,\n 2.6,\n 16,\n 4.0\n ]\n }\n },\n {\n \"id\": \"landuse-outline\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": {\n \"line-color\": \"rgba(255,255,255,0.92)\",\n \"line-opacity\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 8,\n 0.16,\n 12,\n 0.30,\n 16,\n 0.42\n ],\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 8,\n 0.35,\n 12,\n 0.95,\n 16,\n 1.4\n ]\n }\n },\n {\n \"id\": \"farm-outline\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\n \"any\",\n [\"==\", [\"get\", \"class\"], \"farmland\"],\n [\"==\", [\"get\", \"class\"], \"farm\"],\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"subclass\"], \"farmland\"],\n [\"==\", [\"get\", \"subclass\"], \"orchard\"]\n ],\n \"paint\": {\n \"line-color\": \"#bf1d35\",\n \"line-opacity\": 0.9,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 9,\n 0.7,\n 12,\n 1.5,\n 16,\n 2.4\n ]\n }\n },\n {\n \"id\": \"building-fill\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"building\",\n \"paint\": {\n \"fill-color\": \"#d7d2c9\",\n \"fill-opacity\": 0.6\n }\n },\n\n {\n \"id\": \"place-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"place\",\n \"layout\": {\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": [\"interpolate\", [\"linear\"], [\"zoom\"], 5, 10, 12, 14],\n \"text-allow-overlap\": false\n },\n \"paint\": { \"text-color\": \"#2b2b2b\", \"text-halo-color\": \"#ffffff\", \"text-halo-width\": 1.2 }\n },\n\n {\n \"id\": \"road-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 12,\n \"layout\": {\n \"symbol-placement\": \"line\",\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"], [\"get\", \"ref\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": 11\n },\n \"paint\": { \"text-color\": \"#4b4b4b\", \"text-halo-color\": \"#ffffff\", \"text-halo-width\": 1.0 }\n }\n ]\n}","import type { StyleSpecification } from \"maplibre-gl\";\nimport basic from \"./basic.json\";\nimport terrain from \"./terrain.json\";\n\nexport const STYLE_PRESETS = {\n basic: basic as StyleSpecification,\n terrain: terrain as StyleSpecification\n} as const;\n\nexport type StylePresetName = keyof typeof STYLE_PRESETS;","import type { StyleSpecification } from \"maplibre-gl\";\n\nfunction deepClone<T>(obj: T): T {\n return JSON.parse(JSON.stringify(obj));\n}\n\nfunction replaceTokensInString(s: string, tokens: Record<string, string>) {\n let out = s;\n for (const [k, v] of Object.entries(tokens)) {\n out = out.replaceAll(`{{${k}}}`, v);\n }\n\n return out;\n}\n\nfunction deepReplace(obj: any, tokens: Record<string, string>): any {\n if (typeof obj === \"string\") return replaceTokensInString(obj, tokens);\n if (Array.isArray(obj)) return obj.map((v) => deepReplace(v, tokens));\n if (obj && typeof obj === \"object\") {\n const out: any = {};\n for (const [k, v] of Object.entries(obj)) out[k] = deepReplace(v, tokens);\n \n return out;\n }\n\n return obj;\n}\n\nexport function resolveStyleTemplate(\n template: StyleSpecification,\n tokens: Record<string, string>\n): StyleSpecification {\n return deepReplace(deepClone(template), tokens) as StyleSpecification;\n}"],"mappings":"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","names":["maplibregl","maplibregl"]}
|
|
1
|
+
{"version":3,"sources":["../src/createSeamOSMap.ts","../src/pmtiles/protocol.ts","../src/presets/basic.json","../src/presets/terrain.json","../src/presets/index.ts","../src/style/resolveStyle.ts"],"sourcesContent":["import maplibregl, { Map } from \"maplibre-gl\";\nimport { ensurePmtilesProtocol } from \"./pmtiles/protocol\";\nimport { STYLE_PRESETS, type StylePresetName } from \"./presets\";\nimport { resolveStyleTemplate } from \"./style/resolveStyle\";\n\nexport type SeamOSEnv = \"dev\" | \"prod\";\n\nexport type CreateSeamOSMapOptions = {\n container: string | HTMLElement;\n preset: StylePresetName;\n env: SeamOSEnv;\n maplibre?: Omit<maplibregl.MapOptions, \"container\" | \"style\">;\n onLoad?: (map: Map) => void;\n};\n\nexport function createSeamOSMap(opts: CreateSeamOSMapOptions) {\n ensurePmtilesProtocol();\n\n let pmtilesBaseUrl = opts.env === 'prod' ? \n \"/maps\"\n : \"https://seamos-lib.s3.ap-northeast-2.amazonaws.com/pmtiles\";\n \n const template = STYLE_PRESETS[opts.preset] as any;\n\n const style = resolveStyleTemplate(template, { PMTILES_BASE: pmtilesBaseUrl });\n\n const map = new maplibregl.Map({\n container: opts.container,\n style,\n ...opts.maplibre,\n });\n\n return map;\n}","import maplibregl from \"maplibre-gl\";\nimport { Protocol } from \"pmtiles\";\n\nlet installed = false;\n\nexport function ensurePmtilesProtocol() {\n if (installed) return;\n\n const protocol = new Protocol();\n maplibregl.addProtocol(\"pmtiles\", protocol.tile);\n \n installed = true;\n}","{\n \"version\": 8,\n \"name\": \"Korea OMT Lite (demotiles)\",\n \"sources\": {\n \"korea\": {\n \"type\": \"vector\",\n \"url\": \"pmtiles://{{PMTILES_BASE}}/korea_v1.0.0.pmtiles\"\n },\n \"demotiles\": {\n \"type\": \"vector\",\n \"url\": \"pmtiles://{{PMTILES_BASE}}/land_v1.0.0.pmtiles\",\n \"maxzoom\": 6\n }\n },\n\n \"layers\": [\n {\n \"id\": \"bg\",\n \"type\": \"background\",\n \"paint\": { \"background-color\": \"#dceaf7\" }\n },\n\n {\n \"id\": \"countries-fill\",\n \"type\": \"fill\",\n \"source\": \"demotiles\",\n \"source-layer\": \"countries\",\n \"paint\": {\n \"fill-color\": \"#f5f2ee\",\n \"fill-opacity\": 1\n }\n },\n {\n \"id\": \"countries-outline\",\n \"type\": \"line\",\n \"source\": \"demotiles\",\n \"source-layer\": \"countries\",\n \"paint\": {\n \"line-color\": \"#c8bfb4\",\n \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 0, 0.4, 6, 1, 10, 1.5, 14, 2],\n \"line-opacity\": [\"interpolate\", [\"linear\"], [\"zoom\"], 0, 0.6, 8, 0.4, 14, 0.2]\n }\n },\n\n {\n \"id\": \"landcover\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"paint\": {\n \"fill-color\": [\n \"match\", [\"get\", \"class\"],\n \"wood\", \"#c8ddb5\",\n \"grass\", \"#d5e8c1\",\n \"scrub\", \"#cde0b8\",\n \"wetland\", \"#b8dcc8\",\n \"#dae8ca\"\n ],\n \"fill-opacity\": 0.7\n }\n },\n {\n \"id\": \"landuse\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": {\n \"fill-color\": [\n \"match\", [\"get\", \"class\"],\n \"residential\", \"#ede6de\",\n \"commercial\", \"#e8ddd8\",\n \"industrial\", \"#e0dbd6\",\n \"park\", \"#c5e2ac\",\n \"cemetery\", \"#d2dfc5\",\n \"#e8e4dc\"\n ],\n \"fill-opacity\": 0.85\n }\n },\n\n {\n \"id\": \"park\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"park\",\n \"paint\": {\n \"fill-color\": \"#c2e0a8\",\n \"fill-opacity\": 0.7\n }\n },\n\n {\n \"id\": \"water\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"water\",\n \"paint\": { \"fill-color\": \"#a3ceed\" }\n },\n {\n \"id\": \"waterway\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"waterway\",\n \"paint\": {\n \"line-color\": \"#7db8de\",\n \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 8, 0.4, 12, 1.8, 14, 2.5]\n }\n },\n\n {\n \"id\": \"landuse-paddy\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"any\",\n [\"==\", [\"get\", \"class\"], \"paddy\"],\n [\"==\", [\"get\", \"subclass\"], \"paddy\"],\n [\"==\", [\"get\", \"subclass\"], \"rice\"]\n ],\n \"paint\": {\n \"fill-color\": \"#d4f0de\",\n \"fill-opacity\": 0.85\n }\n },\n\n {\n \"id\": \"landuse-agri-other\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"any\",\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"class\"], \"plant_nursery\"],\n [\"==\", [\"get\", \"class\"], \"greenhouse_horticulture\"]\n ],\n \"paint\": {\n \"fill-color\": \"#f5eed2\",\n \"fill-opacity\": 0.8\n }\n },\n\n {\n \"id\": \"landuse-farmland\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"any\",\n [\"==\", [\"get\", \"class\"], \"farmland\"],\n [\"==\", [\"get\", \"class\"], \"farm\"],\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"class\"], \"plant_nursery\"],\n [\"==\", [\"get\", \"class\"], \"greenhouse_horticulture\"]\n ],\n \"paint\": {\n \"fill-color\": \"rgba(235, 91, 108, 0.12)\",\n \"fill-opacity\": 1\n }\n },\n {\n \"id\": \"landuse-farmland-outline\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\"any\",\n [\"==\", [\"get\", \"class\"], \"farmland\"],\n [\"==\", [\"get\", \"class\"], \"farm\"],\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"class\"], \"plant_nursery\"],\n [\"==\", [\"get\", \"class\"], \"greenhouse_horticulture\"]\n ],\n \"paint\": {\n \"line-color\": \"#eb5b6c\",\n \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 8, 0.8, 12, 1.8, 16, 2.5],\n \"line-opacity\": [\"interpolate\", [\"linear\"], [\"zoom\"], 8, 0.7, 12, 0.9, 16, 1]\n }\n },\n\n {\n \"id\": \"buildings\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"building\",\n \"minzoom\": 13,\n \"paint\": {\n \"fill-color\": \"#d8d3cc\",\n \"fill-opacity\": 0.7,\n \"fill-outline-color\": \"#c5bfb8\"\n }\n },\n\n {\n \"id\": \"roads-outline\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": \"#ccc6be\",\n \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 6, 0.6, 10, 2, 14, 6],\n \"line-opacity\": 0.4\n }\n },\n {\n \"id\": \"roads\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": \"#ffffff\",\n \"line-width\": [\"interpolate\", [\"linear\"], [\"zoom\"], 6, 0.3, 10, 1.4, 14, 4.5],\n \"line-opacity\": 0.95\n }\n },\n\n {\n \"id\": \"place-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"place\",\n \"layout\": {\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": [\"interpolate\", [\"linear\"], [\"zoom\"], 5, 10, 12, 14],\n \"text-allow-overlap\": false\n },\n \"paint\": {\n \"text-color\": \"#3a3a3a\",\n \"text-halo-color\": \"rgba(255,255,255,0.9)\",\n \"text-halo-width\": 1.4\n }\n },\n\n {\n \"id\": \"road-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 12,\n \"layout\": {\n \"symbol-placement\": \"line\",\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"], [\"get\", \"ref\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": 11\n },\n \"paint\": {\n \"text-color\": \"#555555\",\n \"text-halo-color\": \"rgba(255,255,255,0.85)\",\n \"text-halo-width\": 1.0\n }\n }\n ]\n}","{\n \"version\": 8,\n \"name\": \"Korea Farm Basemap (OMT z<=14 + Terrain z6~12, vivid)\",\n \"sources\": {\n \"korea\": {\n \"type\": \"vector\",\n \"url\": \"pmtiles://{{PMTILES_BASE}}/korea_v1.0.0.pmtiles\"\n },\n \"terrain\": {\n \"type\": \"raster-dem\",\n \"url\": \"pmtiles://{{PMTILES_BASE}}/korea_terrain_v1.0.0.pmtiles\",\n \"tileSize\": 256,\n \"encoding\": \"mapbox\"\n }\n },\n \"terrain\": {\n \"source\": \"terrain\",\n \"exaggeration\": 1.4\n },\n \"layers\": [\n {\n \"id\": \"background\",\n \"type\": \"background\",\n \"paint\": {\n \"background-color\": \"#8ab7da\"\n }\n },\n {\n \"id\": \"hillshade\",\n \"type\": \"hillshade\",\n \"source\": \"terrain\",\n \"paint\": {\n \"hillshade-shadow-color\": \"#2b2b2b\",\n \"hillshade-highlight-color\": \"#ffffff\",\n \"hillshade-accent-color\": \"#9a9a9a\",\n \"hillshade-exaggeration\": 0.35,\n \"hillshade-illumination-anchor\": \"viewport\"\n }\n },\n {\n \"id\": \"water-fill\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"water\",\n \"paint\": {\n \"fill-color\": \"#4fb3ff\",\n \"fill-opacity\": 0.78\n }\n },\n {\n \"id\": \"landcover-base\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"paint\": {\n \"fill-color\": [\n \"match\",\n [\"get\", \"class\"],\n \"wood\",\n \"#84b07a\",\n \"grass\",\n \"#a6cf85\",\n \"scrub\",\n \"#9fc27e\",\n \"wetland\",\n \"#7fc7ad\",\n \"#b8d8a7\"\n ],\n \"fill-opacity\": 0.20\n }\n },\n {\n \"id\": \"landuse-base\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": {\n \"fill-color\": [\n \"match\",\n [\"get\", \"class\"],\n \"residential\",\n \"#e6d3bf\",\n \"commercial\",\n \"#e1c2c2\",\n \"industrial\",\n \"#d1c8c8\",\n \"park\",\n \"#98d28e\",\n \"cemetery\",\n \"#9ecaa8\",\n \"forest\",\n \"#88b97c\",\n \"farmland\",\n \"#bf1d35\",\n \"farm\",\n \"#b7ea7a\",\n \"orchard\",\n \"#9fe06a\",\n \"vineyard\",\n \"#a8df74\",\n \"#cfe3b2\"\n ],\n \"fill-opacity\": 0.90\n }\n },\n {\n \"id\": \"farm-accent\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\n \"any\",\n [\"==\", [\"get\", \"class\"], \"farmland\"],\n [\"==\", [\"get\", \"class\"], \"farm\"],\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"subclass\"], \"farmland\"],\n [\"==\", [\"get\", \"subclass\"], \"orchard\"]\n ],\n \"paint\": {\n \"fill-color\": \"#bf1d35\",\n \"fill-opacity\": 0.22\n }\n },\n {\n \"id\": \"waterway-line\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"waterway\",\n \"paint\": {\n \"line-color\": \"#1a7fe0\",\n \"line-opacity\": 0.9,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 7,\n 0.6,\n 10,\n 1.5,\n 12,\n 2.4,\n 14,\n 3.2,\n 16,\n 4.0\n ]\n }\n },\n {\n \"id\": \"transportation-casing\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": \"rgba(0,0,0,0.35)\",\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 7,\n 1.2,\n 10,\n 3.0,\n 12,\n 4.2,\n 14,\n 5.4,\n 16,\n 6.2\n ],\n \"line-opacity\": 0.5\n }\n },\n {\n \"id\": \"transportation-line\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation\",\n \"paint\": {\n \"line-color\": [\n \"match\",\n [\"get\", \"class\"],\n \"motorway\",\n \"#f0b24b\",\n \"trunk\",\n \"#f0b24b\",\n \"primary\",\n \"#f1c06a\",\n \"secondary\",\n \"#f4d28a\",\n \"tertiary\",\n \"#f0e0b6\",\n \"track\",\n \"#d6c08a\",\n \"path\",\n \"#d9d1c3\",\n \"#f0e0b6\"\n ],\n \"line-opacity\": 0.85,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 7,\n 0.7,\n 10,\n 2.0,\n 12,\n 2.8,\n 14,\n 3.6,\n 16,\n 4.2\n ]\n }\n },\n {\n \"id\": \"landuse-outline-glow\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": {\n \"line-color\": \"rgba(0,0,0,0.20)\",\n \"line-opacity\": 0.18,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 8,\n 1.2,\n 12,\n 2.6,\n 16,\n 4.0\n ]\n }\n },\n {\n \"id\": \"landuse-outline\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"landuse\",\n \"paint\": {\n \"line-color\": \"rgba(255,255,255,0.92)\",\n \"line-opacity\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 8,\n 0.16,\n 12,\n 0.30,\n 16,\n 0.42\n ],\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 8,\n 0.35,\n 12,\n 0.95,\n 16,\n 1.4\n ]\n }\n },\n {\n \"id\": \"farm-outline\",\n \"type\": \"line\",\n \"source\": \"korea\",\n \"source-layer\": \"landcover\",\n \"filter\": [\n \"any\",\n [\"==\", [\"get\", \"class\"], \"farmland\"],\n [\"==\", [\"get\", \"class\"], \"farm\"],\n [\"==\", [\"get\", \"class\"], \"orchard\"],\n [\"==\", [\"get\", \"class\"], \"vineyard\"],\n [\"==\", [\"get\", \"subclass\"], \"farmland\"],\n [\"==\", [\"get\", \"subclass\"], \"orchard\"]\n ],\n \"paint\": {\n \"line-color\": \"#bf1d35\",\n \"line-opacity\": 0.9,\n \"line-width\": [\n \"interpolate\",\n [\"linear\"],\n [\"zoom\"],\n 9,\n 0.7,\n 12,\n 1.5,\n 16,\n 2.4\n ]\n }\n },\n {\n \"id\": \"building-fill\",\n \"type\": \"fill\",\n \"source\": \"korea\",\n \"source-layer\": \"building\",\n \"paint\": {\n \"fill-color\": \"#d7d2c9\",\n \"fill-opacity\": 0.6\n }\n },\n\n {\n \"id\": \"place-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"place\",\n \"layout\": {\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": [\"interpolate\", [\"linear\"], [\"zoom\"], 5, 10, 12, 14],\n \"text-allow-overlap\": false\n },\n \"paint\": { \"text-color\": \"#2b2b2b\", \"text-halo-color\": \"#ffffff\", \"text-halo-width\": 1.2 }\n },\n\n {\n \"id\": \"road-label\",\n \"type\": \"symbol\",\n \"source\": \"korea\",\n \"source-layer\": \"transportation_name\",\n \"minzoom\": 12,\n \"layout\": {\n \"symbol-placement\": \"line\",\n \"text-field\": [\"coalesce\", [\"get\", \"name:latin\"], [\"get\", \"name\"], [\"get\", \"ref\"]],\n \"text-font\": [\"Noto Sans Regular\"],\n \"text-size\": 11\n },\n \"paint\": { \"text-color\": \"#4b4b4b\", \"text-halo-color\": \"#ffffff\", \"text-halo-width\": 1.0 }\n }\n ]\n}","import type { StyleSpecification } from \"maplibre-gl\";\nimport basic from \"./basic.json\";\nimport terrain from \"./terrain.json\";\n\nexport const STYLE_PRESETS = {\n basic: basic as StyleSpecification,\n terrain: terrain as StyleSpecification\n} as const;\n\nexport type StylePresetName = keyof typeof STYLE_PRESETS;","import type { StyleSpecification } from \"maplibre-gl\";\n\nfunction deepClone<T>(obj: T): T {\n return JSON.parse(JSON.stringify(obj));\n}\n\nfunction replaceTokensInString(s: string, tokens: Record<string, string>) {\n let out = s;\n for (const [k, v] of Object.entries(tokens)) {\n out = out.replaceAll(`{{${k}}}`, v);\n }\n\n return out;\n}\n\nfunction deepReplace(obj: any, tokens: Record<string, string>): any {\n if (typeof obj === \"string\") return replaceTokensInString(obj, tokens);\n if (Array.isArray(obj)) return obj.map((v) => deepReplace(v, tokens));\n if (obj && typeof obj === \"object\") {\n const out: any = {};\n for (const [k, v] of Object.entries(obj)) out[k] = deepReplace(v, tokens);\n \n return out;\n }\n\n return obj;\n}\n\nexport function resolveStyleTemplate(\n template: StyleSpecification,\n tokens: Record<string, string>\n): StyleSpecification {\n return deepReplace(deepClone(template), tokens) as StyleSpecification;\n}"],"mappings":"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","names":["maplibregl","maplibregl"]}
|
package/package.json
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@seamos/map-preset",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Simple Preset for map(Maplibre) when you development SeamOS application.",
|
|
5
5
|
"private": false,
|
|
6
6
|
"type": "module",
|
|
7
7
|
"main": "dist/index.cjs",
|
|
8
8
|
"module": "dist/index.js",
|
|
9
9
|
"types": "dist/index.d.ts",
|
|
10
|
-
"files": [
|
|
10
|
+
"files": [
|
|
11
|
+
"dist"
|
|
12
|
+
],
|
|
11
13
|
"sideEffects": false,
|
|
12
14
|
"author": "Sungmin Cho",
|
|
13
15
|
"license": "MIT",
|
|
@@ -27,4 +29,4 @@
|
|
|
27
29
|
"tsup": "^8.0.0",
|
|
28
30
|
"typescript": "^5.0.0"
|
|
29
31
|
}
|
|
30
|
-
}
|
|
32
|
+
}
|