From dda0a9846db652f486cc32c92bcf9bb530326d63 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A2u=20Cao?= Date: Sun, 20 Sep 2026 14:50:49 +0200 Subject: [PATCH] Add icons for cycleways and rail transit, prioritize historic places --- app/utils/icons.js | 4 ++++ app/utils/osm-icons.js | 29 +++++++++++++++++------------ 2 files changed, 21 insertions(+), 12 deletions(-) diff --git a/app/utils/icons.js b/app/utils/icons.js index 6c95612..c6e244f 100644 --- a/app/utils/icons.js +++ b/app/utils/icons.js @@ -53,6 +53,7 @@ import anchor from '@waysidemapping/pinhead/dist/icons/anchor.svg?raw'; import airportTerminal from '@waysidemapping/pinhead/dist/icons/airport_terminal.svg?raw'; import barbell from '@waysidemapping/pinhead/dist/icons/barbell.svg?raw'; import barrelWithBunghole from '@waysidemapping/pinhead/dist/icons/barrel_with_bunghole.svg?raw'; +import bicycle from '@waysidemapping/pinhead/dist/icons/bicycle.svg?raw'; import bulldozer from '@waysidemapping/pinhead/dist/icons/bulldozer.svg?raw'; import climbingWall from '@waysidemapping/pinhead/dist/icons/climbing_wall.svg?raw'; import banknote from '@waysidemapping/pinhead/dist/icons/banknote.svg?raw'; @@ -141,6 +142,7 @@ import tableTennisPaddle from '@waysidemapping/pinhead/dist/icons/table_tennis_p import tattooMachine from '@waysidemapping/pinhead/dist/icons/tattoo_machine.svg?raw'; import toolbox from '@waysidemapping/pinhead/dist/icons/toolbox.svg?raw'; import townBuildings from '@waysidemapping/pinhead/dist/icons/town_buildings.svg?raw'; +import transitVehicleOnRailwayTrack from '@waysidemapping/pinhead/dist/icons/transit_vehicle_on_railway_track.svg?raw'; import treeAndBenchWithBackrest from '@waysidemapping/pinhead/dist/icons/tree_and_bench_with_backrest.svg?raw'; import villageBuildings from '@waysidemapping/pinhead/dist/icons/village_buildings.svg?raw'; import wallHangingWithMountainsAndSun from '@waysidemapping/pinhead/dist/icons/wall_hanging_with_mountains_and_sun.svg?raw'; @@ -166,6 +168,7 @@ const ICONS = { 'arrow-left': arrowLeft, barbell, 'barrel-with-bunghole': barrelWithBunghole, + bicycle, bulldozer, banknote, 'banknote-in-slot': banknoteInSlot, @@ -288,6 +291,7 @@ const ICONS = { 'trash-2': trash2, 'upload-cloud': uploadCloud, 'town-buildings': townBuildings, + 'transit-vehicle-on-railway-track': transitVehicleOnRailwayTrack, 'tree-and-bench-with-backrest': treeAndBenchWithBackrest, user, 'user-check': userCheck, diff --git a/app/utils/osm-icons.js b/app/utils/osm-icons.js index 3788a3c..99ea41e 100644 --- a/app/utils/osm-icons.js +++ b/app/utils/osm-icons.js @@ -103,18 +103,6 @@ export const POI_ICON_RULES = [ { tags: { landuse: 'construction' }, icon: 'bulldozer' }, { tags: { landuse: 'residential' }, icon: 'town-buildings' }, - // Transport - { tags: { aeroway: 'aerodrome' }, icon: 'plane-top-right' }, - { tags: { aeroway: 'terminal' }, icon: 'airport-terminal' }, - { tags: { aeroway: 'heliport' }, icon: 'plane-top-right' }, - { tags: { aeroway: 'helipad' }, icon: 'plane-top-right' }, - { tags: { highway: 'bus_stop' }, icon: 'bus' }, - { tags: { bus: true }, icon: 'bus' }, - { - tags: { railway: 'tram_stop' }, - icon: 'person-boarding-tram-with-destination-display-and-pantograph-on-tram-track', - }, - // Tourism { tags: { tourism: 'museum' }, icon: 'classical-building' }, { tags: { tourism: 'gallery' }, icon: 'wall-hanging-with-mountains-and-sun' }, @@ -159,6 +147,23 @@ export const POI_ICON_RULES = [ { tags: { historic: 'ruin' }, icon: 'camera' }, { tags: { historic: 'yes' }, icon: 'camera' }, + // Transport + { tags: { aeroway: 'aerodrome' }, icon: 'plane-top-right' }, + { tags: { aeroway: 'terminal' }, icon: 'airport-terminal' }, + { tags: { aeroway: 'heliport' }, icon: 'plane-top-right' }, + { tags: { aeroway: 'helipad' }, icon: 'plane-top-right' }, + { tags: { highway: 'bus_stop' }, icon: 'bus' }, + { tags: { highway: 'cycleway' }, icon: 'bicycle' }, + { tags: { bus: true }, icon: 'bus' }, + { + tags: { railway: 'tram_stop' }, + icon: 'person-boarding-tram-with-destination-display-and-pantograph-on-tram-track', + }, + { tags: { light_rail: true }, icon: 'transit-vehicle-on-railway-track' }, + { tags: { train: true }, icon: 'transit-vehicle-on-railway-track' }, + { tags: { tram: true }, icon: 'transit-vehicle-on-railway-track' }, + { tags: { subway: true }, icon: 'transit-vehicle-on-railway-track' }, + // Accommodation { tags: { tourism: 'hotel' }, icon: 'person-sleeping-in-bed' }, { tags: { tourism: 'hostel' }, icon: 'person-sleeping-in-bed' },