Skip to content

Commit 93ec514

Browse files
committed
refactor: Optimize icon loading
1 parent 7aba414 commit 93ec514

4 files changed

Lines changed: 62 additions & 294 deletions

File tree

src/components/LeafletMap.svelte

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -47,9 +47,9 @@
4747
const marker = layer
4848
.bindPopup(properties.popup)
4949
.setIcon(icon({
50-
iconUrl: "/icons/" + properties.icon.icon,
51-
iconSize: [properties.icon.dimension, properties.icon.dimension],
52-
iconAnchor: [properties.icon.dimension / 2, properties.icon.dimension / 2],
50+
iconUrl: "/icons/" + properties.icon,
51+
iconSize: [12, 12],
52+
iconAnchor: [6, 6],
5353
popupAnchor: [0, -10],
5454
}));
5555

src/lib/utils/icons.ts

Lines changed: 58 additions & 286 deletions
Original file line numberDiff line numberDiff line change
@@ -1,286 +1,58 @@
1-
export const icons = {
2-
default: {
3-
icon: "default.png",
4-
desc: "No icon",
5-
dimension: 12
6-
},
7-
harvesters: {
8-
icon: "harvester.png",
9-
desc: "Harvester",
10-
dimension: 12
11-
},
12-
forageharvesters: {
13-
icon: "harvester.png",
14-
desc: "Forage Harvester",
15-
dimension: 12
16-
},
17-
foragewagon: {
18-
icon: "trailer.png",
19-
desc: "Loading Wagon",
20-
dimension: 12
21-
},
22-
tractorsl: {
23-
icon: "vehicle.png",
24-
desc: "Large Tractors",
25-
dimension: 12
26-
},
27-
tractorsm: {
28-
icon: "vehicle.png",
29-
desc: "Medium Tractors",
30-
dimension: 12
31-
},
32-
tractorss: {
33-
icon: "vehicle.png",
34-
desc: "Small Tractors",
35-
dimension: 12
36-
},
37-
miscvehicles: {
38-
icon: "ropa.png",
39-
desc: "Misc. Vehicles",
40-
dimension: 12
41-
},
42-
windrower: {
43-
icon: "tool.png",
44-
desc: "Windrowers",
45-
dimension: 12
46-
},
47-
planters: {
48-
icon: "tool.png",
49-
desc: "Planters",
50-
dimension: 12
51-
},
52-
trailer: {
53-
icon: "trailer.png",
54-
desc: "Traielrs",
55-
dimension: 12
56-
},
57-
car: {
58-
icon: "vehicle.png",
59-
desc: "Cars",
60-
dimension: 12
61-
},
62-
trucks: {
63-
icon: "vehicle.png",
64-
desc: "Trucks",
65-
dimension: 12
66-
},
67-
cultivator: {
68-
icon: "tool.png",
69-
desc: "Cultivators",
70-
dimension: 12
71-
},
72-
fertilizerspreaders: {
73-
icon: "tool.png",
74-
desc: "Fertilizer Spreaders",
75-
dimension: 12
76-
},
77-
forklifts: {
78-
icon: "vehicle.png",
79-
desc: "Forklifts",
80-
dimension: 12
81-
},
82-
watertrailer: {
83-
icon: "trailer.png",
84-
desc: "Water Trailers",
85-
dimension: 12
86-
},
87-
seeders: {
88-
icon: "tool.png",
89-
desc: "Seeders",
90-
dimension: 12
91-
},
92-
traintrailer: {
93-
icon: "train.png",
94-
desc: "Train carts",
95-
dimension: 12
96-
},
97-
traintimbertrailer: {
98-
icon: "train.png",
99-
desc: "Train timber carts",
100-
dimension: 12
101-
},
102-
bigbags: {
103-
icon: "crate.png",
104-
desc: "Bigbags",
105-
dimension: 16
106-
},
107-
bigbagpallets: {
108-
icon: "crate.png",
109-
desc: "Bigbag Pallets",
110-
dimension: 16
111-
},
112-
pallets: {
113-
icon: "crate.png",
114-
desc: "Pallets",
115-
dimension: 16
116-
},
117-
wheelloadertools: {
118-
icon: "tool.png",
119-
desc: "Wheel loader tools",
120-
dimension: 12
121-
},
122-
wheelloadervehicles: {
123-
icon: "vehicle.png",
124-
desc: "Wheel loaders",
125-
dimension: 12
126-
},
127-
teleloadertools: {
128-
icon: "tool.png",
129-
desc: "Telehandler tools",
130-
dimension: 12
131-
},
132-
teleloadervehicles: {
133-
icon: "vehicle.png",
134-
desc: "Telehandlers",
135-
dimension: 12
136-
},
137-
frontloadertools: {
138-
icon: "tool.png",
139-
desc: "Front-loader tools",
140-
dimension: 12
141-
},
142-
skidsteertools: {
143-
icon: "tool.png",
144-
desc: "Skidsteer tools",
145-
dimension: 12
146-
},
147-
skidsteervehicles: {
148-
icon: "vehicle.png",
149-
desc: "Skidsteers",
150-
dimension: 12
151-
},
152-
forageharvestercutters: {
153-
icon: "tool.png",
154-
desc: "Forage Harvester Cutters",
155-
dimension: 12
156-
},
157-
mowervehicles: {
158-
icon: "mower.png",
159-
desc: "Self-propelled Mowers",
160-
dimension: 12
161-
},
162-
selfpropelledsprayer: {
163-
icon: "vehicle.png",
164-
desc: "Self-propelled Sprayers",
165-
dimension: 12
166-
},
167-
augerwagon: {
168-
icon: "trailer.png",
169-
desc: "Auger wagons",
170-
dimension: 12
171-
},
172-
baleloaders: {
173-
icon: "tool.png",
174-
desc: "Bale loaders",
175-
dimension: 12
176-
},
177-
baler: {
178-
icon: "tool.png",
179-
desc: "Balers",
180-
dimension: 12
181-
},
182-
balewrapper: {
183-
icon: "tool.png",
184-
desc: "Bale Wrappers",
185-
dimension: 12
186-
},
187-
cutter: {
188-
icon: "tool.png",
189-
desc: "Combine Harvester Cutters",
190-
dimension: 12
191-
},
192-
handtoolmower: {
193-
icon: "mower.png",
194-
desc: "Hand-tool Mowers",
195-
dimension: 12
196-
},
197-
plows: {
198-
icon: "tool.png",
199-
desc: "Plows",
200-
dimension: 12
201-
},
202-
weights: {
203-
icon: "tool.png",
204-
desc: "Weights",
205-
dimension: 12
206-
},
207-
cuttertrailers: {
208-
icon: "trailer.png",
209-
desc: "Cutter trailers",
210-
dimension: 12
211-
},
212-
rollers: {
213-
icon: "tool.png",
214-
desc: "Field rollers",
215-
dimension: 12
216-
},
217-
attachablefrontloader: {
218-
icon: "tool.png",
219-
desc: "Front-loaders",
220-
dimension: 12
221-
},
222-
mower: {
223-
icon: "mower.png",
224-
desc: "Mowers",
225-
dimension: 12
226-
},
227-
tedders: {
228-
icon: "tool.png",
229-
desc: "Tedders",
230-
dimension: 12
231-
},
232-
slurrytanks: {
233-
icon: "tool.png",
234-
desc: "Slurry Tankers",
235-
dimension: 12
236-
},
237-
slurryvehicles: {
238-
icon: "vehicle.png",
239-
desc: "Slurry Vehicles",
240-
dimension: 12
241-
},
242-
drivablemixerwagon: {
243-
icon: "vehicle.png",
244-
desc: "Self-propelled TMR Mixers",
245-
dimension: 12
246-
},
247-
grapetools: {
248-
icon: "tool.png",
249-
desc: "Grape tools",
250-
dimension: 12
251-
},
252-
vineharvester: {
253-
icon: "harvester.png",
254-
desc: "Vineyard Harvesters",
255-
dimension: 12
256-
},
257-
ixerwagon: {
258-
icon: "tool.png",
259-
desc: "Mixer Wagons",
260-
dimension: 12
261-
},
262-
ranetrailer: {
263-
icon: "trailer.png",
264-
desc: "Forestry Trailers",
265-
dimension: 12
266-
},
267-
tumpcutter: {
268-
icon: "tool.png",
269-
desc: "Stump Cutters",
270-
dimension: 12
271-
},
272-
misc: {
273-
icon: "ropa.png",
274-
desc: "Misc.",
275-
dimension: 12
276-
},
277-
controller: {
278-
icon: "controller.png",
279-
desc: "Player",
280-
dimension: 12
281-
}
282-
} as Record<string, {
283-
icon: string;
284-
desc: string;
285-
dimension: number;
286-
}>;
1+
export const icons: Record<string, string> = {
2+
default: "default.png",
3+
harvesters: "harvester.png",
4+
forageharvesters: "harvester.png",
5+
foragewagon: "trailer.png",
6+
tractorsl: "vehicle.png",
7+
tractorsm: "vehicle.png",
8+
tractorss: "vehicle.png",
9+
miscvehicles: "ropa.png",
10+
windrower: "tool.png",
11+
planters: "tool.png",
12+
trailer: "trailer.png",
13+
car: "vehicle.png",
14+
trucks: "vehicle.png",
15+
cultivator: "tool.png",
16+
fertilizerspreaders: "tool.png",
17+
forklifts: "vehicle.png",
18+
watertrailer: "trailer.png",
19+
seeders: "tool.png",
20+
traintrailer: "train.png",
21+
traintimbertrailer: "train.png",
22+
bigbags: "crate.png",
23+
bigbagpallets: "crate.png",
24+
pallets: "crate.png",
25+
wheelloadertools: "tool.png",
26+
wheelloadervehicles: "vehicle.png",
27+
teleloadertools: "tool.png",
28+
teleloadervehicles: "vehicle.png",
29+
frontloadertools: "tool.png",
30+
skidsteertools: "tool.png",
31+
skidsteervehicles: "vehicle.png",
32+
forageharvestercutters: "tool.png",
33+
mowervehicles: "mower.png",
34+
selfpropelledsprayer: "vehicle.png",
35+
augerwagon: "trailer.png",
36+
baleloaders: "tool.png",
37+
baler: "tool.png",
38+
balewrapper: "tool.png",
39+
cutter: "tool.png",
40+
handtoolmower: "mower.png",
41+
plows: "tool.png",
42+
weights: "tool.png",
43+
cuttertrailers: "trailer.png",
44+
rollers: "tool.png",
45+
attachablefrontloader: "tool.png",
46+
mower: "mower.png",
47+
tedders: "tool.png",
48+
slurrytanks: "tool.png",
49+
slurryvehicles: "vehicle.png",
50+
drivablemixerwagon: "vehicle.png",
51+
grapetools: "tool.png",
52+
vineharvester: "harvester.png",
53+
ixerwagon: "tool.png",
54+
ranetrailer: "trailer.png",
55+
tumpcutter: "tool.png",
56+
misc: "ropa.png",
57+
controller: "controller.png"
58+
};

src/typings.ts

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,6 @@ export interface LeafletVehicle {
9191
type: string;
9292
category: string;
9393
controller?: string;
94-
icon: {
95-
icon: string;
96-
desc: string;
97-
dimension: number;
98-
};
94+
icon: string;
9995
popup: string;
10096
}

static/icons/crate.png

588 Bytes
Loading

0 commit comments

Comments
 (0)