Skip to content

Instantly share code, notes, and snippets.

@schierlm
Created April 6, 2026 15:05
Show Gist options
  • Select an option

  • Save schierlm/f1f14061b9a961c2e8611d0ec0571d36 to your computer and use it in GitHub Desktop.

Select an option

Save schierlm/f1f14061b9a961c2e8611d0ec0571d36 to your computer and use it in GitHub Desktop.
Patches to get osm-hybrid-carto running again

Summary

osm-hybrid-carto is one of the few raster tile styles available that is designed to be used as an overlay to satellite tiles. (The other known alternative is osm-bright-hybrid).

However, this style is unmaintained and needs a bit of love to get working with latest carto/mapnik and the carto6 database scheme.

Find attached patches that do so.

From 5e34d4336bec8a5941faf5b10df039315ebe0038 Mon Sep 17 00:00:00 2001
From: Michael Schierl <schierlm@gmx.de>
Date: Fri, 3 Apr 2026 22:38:12 +0200
Subject: [PATCH 1/2] Updates for current systems
- Use python3 for configure.py
- Do not connect via TCP to postgis by default
- Specify SRS at toplevel
- Add script to rename/move icons from latest downloadable icon pack
---
configure.py | 10 +--
copy-icons.sh | 164 ++++++++++++++++++++++++++++++++++++++++++++++++++
osmt/osmt.mml | 1 +
3 files changed, 170 insertions(+), 5 deletions(-)
create mode 100755 copy-icons.sh
diff --git a/configure.py b/configure.py
index 9c45c88..8dd5b67 100755
--- a/configure.py
+++ b/configure.py
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python3
# Copyright (c) 2011, Development Seed, Inc.
# 2011, Andrew Harvey <andrew.harvey4@gmail.com>
@@ -41,11 +41,11 @@ import argparse
## argparse
parser = argparse.ArgumentParser(description='Configure an MML file with datasource settings')
-parser.add_argument('--host', default='localhost')
-parser.add_argument('--port', default='5432')
+parser.add_argument('--host', default='')
+parser.add_argument('--port', default='')
parser.add_argument('--dbname', default='osm')
-parser.add_argument('--user', default='osm')
-parser.add_argument('--password', default='osm')
+parser.add_argument('--user', default='')
+parser.add_argument('--password', default='')
parser.add_argument('--srs', default='+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over')
# Increase performance if you are only rendering a particular area by
diff --git a/copy-icons.sh b/copy-icons.sh
new file mode 100755
index 0000000..fe4e7e2
--- /dev/null
+++ b/copy-icons.sh
@@ -0,0 +1,164 @@
+#!/bin/sh -e
+
+mkdir -p /usr/share/icons/osmt
+
+for CATEGORY in accommodation amenity barrier education food health money poi shopping sport tourist transport water; do
+ mkdir -p /usr/share/icons/sjjb/png/${CATEGORY}
+done
+
+cp osmt/symbols/*.png /usr/share/icons/osmt
+
+mkdir Icons
+cd Icons
+tar xfa ../SJJB-PNGALL-Icons-20221206.tar.gz
+
+
+for SIZE in 12 16 20 24 32; do
+ mv pngall/accommodation_alpinehut.glow.0092DA.${SIZE}.png /usr/share/icons/sjjb/png/accommodation/alpine_hut.glow.0092DA.${SIZE}.png
+ mv pngall/accommodation_camping.glow.0092DA.${SIZE}.png /usr/share/icons/sjjb/png/accommodation/camping.glow.0092DA.${SIZE}.png
+ mv pngall/accommodation_caravan_park.glow.0092DA.${SIZE}.png /usr/share/icons/sjjb/png/accommodation/caravan_park.glow.0092DA.${SIZE}.png
+ mv pngall/accommodation_chalet.glow.0092DA.${SIZE}.png /usr/share/icons/sjjb/png/accommodation/chalet.glow.0092DA.${SIZE}.png
+ mv pngall/accommodation_hotel.glow.0092DA.${SIZE}.png /usr/share/icons/sjjb/png/accommodation/hotel.glow.0092DA.${SIZE}.png
+ mv pngall/accommodation_motel.glow.0092DA.${SIZE}.png /usr/share/icons/sjjb/png/accommodation/motel.glow.0092DA.${SIZE}.png
+ mv pngall/amenity_bench.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/bench.glow.000000.${SIZE}.png
+ mv pngall/amenity_court.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/court.glow.000000.${SIZE}.png
+ mv pngall/amenity_firestation.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/firestation.glow.000000.${SIZE}.png
+ mv pngall/amenity_fountain.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/fountain.glow.000000.${SIZE}.png
+ mv pngall/amenity_library.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/library.glow.000000.${SIZE}.png
+ mv pngall/amenity_playground.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/playground.glow.000000.${SIZE}.png
+ mv pngall/amenity_police.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/police.glow.000000.${SIZE}.png
+ mv pngall/amenity_post_box.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/post_box.glow.000000.${SIZE}.png
+ mv pngall/amenity_post_office.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/post_office.glow.000000.${SIZE}.png
+ mv pngall/amenity_prison.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/prison.glow.000000.${SIZE}.png
+ mv pngall/amenity_public_building.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/public_building.glow.000000.${SIZE}.png
+ mv pngall/amenity_recycling.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/recycling.glow.000000.${SIZE}.png
+ mv pngall/amenity_survey_point.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/survey_point.glow.000000.${SIZE}.png
+ mv pngall/amenity_telephone.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/telephone.glow.000000.${SIZE}.png
+ mv pngall/amenity_toilets.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/toilets.glow.000000.${SIZE}.png
+ mv pngall/amenity_town_hall.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/town_hall.glow.000000.${SIZE}.png
+ mv pngall/amenity_waste_bin.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/amenity/waste_bin.glow.000000.${SIZE}.png
+ mv pngall/barrier_blocks.glow.999999.${SIZE}.png /usr/share/icons/sjjb/png/barrier/blocks.glow.999999.${SIZE}.png
+ mv pngall/barrier_bollard.glow.999999.${SIZE}.png /usr/share/icons/sjjb/png/barrier/bollard.glow.999999.${SIZE}.png
+ mv pngall/barrier_cattle_grid.glow.999999.${SIZE}.png /usr/share/icons/sjjb/png/barrier/cattle_grid.glow.999999.${SIZE}.png
+ mv pngall/barrier_cycle_barrier.glow.999999.${SIZE}.png /usr/share/icons/sjjb/png/barrier/cycle_barrier.glow.999999.${SIZE}.png
+ mv pngall/barrier_entrance.glow.999999.${SIZE}.png /usr/share/icons/sjjb/png/barrier/entrance.glow.999999.${SIZE}.png
+ mv pngall/barrier_exit.glow.999999.${SIZE}.png /usr/share/icons/sjjb/png/barrier/exit.glow.999999.${SIZE}.png
+ mv pngall/barrier_gate.glow.999999.${SIZE}.png /usr/share/icons/sjjb/png/barrier/gate.glow.999999.${SIZE}.png
+ mv pngall/barrier_kissing_gate.glow.999999.${SIZE}.png /usr/share/icons/sjjb/png/barrier/kissing_gate.glow.999999.${SIZE}.png
+ mv pngall/barrier_lift_gate.glow.999999.${SIZE}.png /usr/share/icons/sjjb/png/barrier/lift_gate.glow.999999.${SIZE}.png
+ mv pngall/barrier_steps.glow.999999.${SIZE}.png /usr/share/icons/sjjb/png/barrier/steps.glow.999999.${SIZE}.png
+ mv pngall/barrier_stile.glow.999999.${SIZE}.png /usr/share/icons/sjjb/png/barrier/stile.glow.999999.${SIZE}.png
+ mv pngall/barrier_toll_booth.glow.999999.${SIZE}.png /usr/share/icons/sjjb/png/barrier/toll_booth.glow.999999.${SIZE}.png
+ mv pngall/education_college.glow.734A08.${SIZE}.png /usr/share/icons/sjjb/png/education/college.glow.734A08.${SIZE}.png
+ mv pngall/education_nursery.glow.734A08.${SIZE}.png /usr/share/icons/sjjb/png/education/nursery.glow.734A08.${SIZE}.png
+ mv pngall/education_school.glow.734A08.${SIZE}.png /usr/share/icons/sjjb/png/education/school.glow.734A08.${SIZE}.png
+ mv pngall/education_school_primary.glow.734A08.${SIZE}.png /usr/share/icons/sjjb/png/education/school_primary.glow.734A08.${SIZE}.png
+ mv pngall/education_school_secondary.glow.734A08.${SIZE}.png /usr/share/icons/sjjb/png/education/school_secondary.glow.734A08.${SIZE}.png
+ mv pngall/education_university.glow.734A08.${SIZE}.png /usr/share/icons/sjjb/png/education/university.glow.734A08.${SIZE}.png
+ mv pngall/food_bar.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/food/bar.glow.AC39AC.${SIZE}.png
+ mv pngall/food_biergarten.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/food/biergarten.glow.AC39AC.${SIZE}.png
+ mv pngall/food_cafe.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/food/cafe.glow.AC39AC.${SIZE}.png
+ mv pngall/food_drinkingtap.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/food/drinkingtap.glow.AC39AC.${SIZE}.png
+ mv pngall/food_fastfood.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/food/fastfood.glow.AC39AC.${SIZE}.png
+ mv pngall/food_ice_cream.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/food/ice_cream.glow.AC39AC.${SIZE}.png
+ mv pngall/food_pizza.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/food/pizza.glow.AC39AC.${SIZE}.png
+ mv pngall/food_pub.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/food/pub.glow.AC39AC.${SIZE}.png
+ mv pngall/food_restaurant.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/food/restaurant.glow.AC39AC.${SIZE}.png
+ mv pngall/health_dentist.p.DA0092.${SIZE}.png /usr/share/icons/sjjb/png/health/dentist.p.DA0092.${SIZE}.png
+ mv pngall/health_doctors.p.DA0092.${SIZE}.png /usr/share/icons/sjjb/png/health/doctors.p.DA0092.${SIZE}.png
+ mv pngall/health_hospital.p.DA0092.${SIZE}.png /usr/share/icons/sjjb/png/health/hospital.p.DA0092.${SIZE}.png
+ mv pngall/health_opticians.p.DA0092.${SIZE}.png /usr/share/icons/sjjb/png/health/opticians.p.DA0092.${SIZE}.png
+ mv pngall/health_pharmacy.p.DA0092.${SIZE}.png /usr/share/icons/sjjb/png/health/pharmacy.p.DA0092.${SIZE}.png
+ mv pngall/health_veterinary.p.DA0092.${SIZE}.png /usr/share/icons/sjjb/png/health/veterinary.p.DA0092.${SIZE}.png
+ mv pngall/money_atm.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/money/atm.glow.AC39AC.${SIZE}.png
+ mv pngall/money_bank.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/money/bank.glow.AC39AC.${SIZE}.png
+ mv pngall/money_currency_exchange.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/money/currency_exchange.glow.AC39AC.${SIZE}.png
+ mv pngall/poi_cave.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/poi/cave.glow.000000.${SIZE}.png
+ mv pngall/poi_peak.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/poi/peak.glow.000000.${SIZE}.png
+ mv pngall/shopping_alcohol.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/alcohol.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_bakery.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/bakery.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_bicycle.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/bicycle.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_book.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/book.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_butcher.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/butcher.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_car.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/car.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_car_repair.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/car_repair.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_clothes.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/clothes.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_computer.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/computer.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_confectionery.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/confectionery.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_convenience.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/convenience.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_copyshop.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/copyshop.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_department_store.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/department_store.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_diy.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/diy.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_estateagent.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/estateagent.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_fish.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/fish.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_florist.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/florist.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_garden_centre.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/garden_centre.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_gift.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/gift.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_greengrocer.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/greengrocer.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_hairdresser.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/hairdresser.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_hearing_aids.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/hearing_aids.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_hifi.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/hifi.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_jewelry.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/jewelry.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_kiosk.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/kiosk.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_laundrette.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/laundrette.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_marketplace.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/marketplace.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_mobile_phone.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/mobile_phone.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_motorcycle.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/motorcycle.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_music.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/music.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_newspaper.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/newspaper.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_pet.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/pet.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_photo.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/photo.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_supermarket.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/supermarket.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_tackle.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/tackle.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_tobacco.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/tobacco.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_toys.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/toys.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_vending_machine.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/vending_machine.glow.AC39AC.${SIZE}.png
+ mv pngall/shopping_video_rental.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/shopping/video_rental.glow.AC39AC.${SIZE}.png
+ mv pngall/sport_archery.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/archery.glow.000000.${SIZE}.png
+ mv pngall/sport_baseball.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/baseball.glow.000000.${SIZE}.png
+ mv pngall/sport_canoe.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/canoe.glow.000000.${SIZE}.png
+ mv pngall/sport_cricket.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/cricket.glow.000000.${SIZE}.png
+ mv pngall/sport_diving.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/diving.glow.000000.${SIZE}.png
+ mv pngall/sport_golf.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/golf.glow.000000.${SIZE}.png
+ mv pngall/sport_gym.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/gym.glow.000000.${SIZE}.png
+ mv pngall/sport_gymnasium.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/gymnasium.glow.000000.${SIZE}.png
+ mv pngall/sport_hillclimbing.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/hillclimbing.glow.000000.${SIZE}.png
+ mv pngall/sport_horse_racing.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/horse_racing.glow.000000.${SIZE}.png
+ mv pngall/sport_iceskating.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/iceskating.glow.000000.${SIZE}.png
+ mv pngall/sport_jetski.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/jetski.glow.000000.${SIZE}.png
+ mv pngall/sport_minature_golf.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/minature_golf.glow.000000.${SIZE}.png
+ mv pngall/sport_motorracing.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/motorracing.glow.000000.${SIZE}.png
+ mv pngall/sport_playground.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/playground.glow.000000.${SIZE}.png
+ mv pngall/sport_sailing.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/sailing.glow.000000.${SIZE}.png
+ mv pngall/sport_shooting.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/shooting.glow.000000.${SIZE}.png
+ mv pngall/sport_snooker.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/snooker.glow.000000.${SIZE}.png
+ mv pngall/sport_soccer.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/soccer.glow.000000.${SIZE}.png
+ mv pngall/sport_swimming_indoor.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/swimming_indoor.glow.000000.${SIZE}.png
+ mv pngall/sport_tennis.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/tennis.glow.000000.${SIZE}.png
+ mv pngall/sport_windsurfing.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/sport/windsurfing.glow.000000.${SIZE}.png
+ mv pngall/tourist_attraction.n.8E7409.${SIZE}.png /usr/share/icons/sjjb/png/tourist/attraction.n.8E7409.${SIZE}.png
+ mv pngall/tourist_cinema.n.8E7409.${SIZE}.png /usr/share/icons/sjjb/png/tourist/cinema.n.8E7409.${SIZE}.png
+ mv pngall/tourist_fountain.n.8E7409.${SIZE}.png /usr/share/icons/sjjb/png/tourist/fountain.n.8E7409.${SIZE}.png
+ mv pngall/tourist_information.n.8E7409.${SIZE}.png /usr/share/icons/sjjb/png/tourist/information.n.8E7409.${SIZE}.png
+ mv pngall/tourist_memorial.n.8E7409.${SIZE}.png /usr/share/icons/sjjb/png/tourist/memorial.n.8E7409.${SIZE}.png
+ mv pngall/tourist_monument.n.8E7409.${SIZE}.png /usr/share/icons/sjjb/png/tourist/monument.n.8E7409.${SIZE}.png
+ mv pngall/tourist_museum.n.8E7409.${SIZE}.png /usr/share/icons/sjjb/png/tourist/museum.n.8E7409.${SIZE}.png
+ mv pngall/tourist_picnic.n.8E7409.${SIZE}.png /usr/share/icons/sjjb/png/tourist/picnic.n.8E7409.${SIZE}.png
+ mv pngall/tourist_theme_park.n.8E7409.${SIZE}.png /usr/share/icons/sjjb/png/tourist/theme_park.n.8E7409.${SIZE}.png
+ mv pngall/tourist_view_point.n.8E7409.${SIZE}.png /usr/share/icons/sjjb/png/tourist/view_point.n.8E7409.${SIZE}.png
+ mv pngall/tourist_zoo.n.8E7409.${SIZE}.png /usr/share/icons/sjjb/png/tourist/zoo.n.8E7409.${SIZE}.png
+ mv pngall/transport_airport_gate.n.0092DA.${SIZE}.png /usr/share/icons/sjjb/png/transport/airport_gate.n.0092DA.${SIZE}.png
+ mv pngall/transport_airport_terminal.n.0092DA.${SIZE}.png /usr/share/icons/sjjb/png/transport/airport_terminal.n.0092DA.${SIZE}.png
+ mv pngall/transport_bus_stop.n.0092DA.${SIZE}.png /usr/share/icons/sjjb/png/transport/bus_stop.n.0092DA.${SIZE}.png
+ mv pngall/transport_ford.n.0092DA.${SIZE}.png /usr/share/icons/sjjb/png/transport/ford.n.0092DA.${SIZE}.png
+ mv pngall/transport_helicopter_pad.n.0092DA.${SIZE}.png /usr/share/icons/sjjb/png/transport/helicopter_pad.n.0092DA.${SIZE}.png
+ mv pngall/transport_parking.n.0092DA.${SIZE}.png /usr/share/icons/sjjb/png/transport/parking.n.0092DA.${SIZE}.png
+ mv pngall/transport_parking_bicycle.n.0092DA.${SIZE}.png /usr/share/icons/sjjb/png/transport/parking_bicycle.n.0092DA.${SIZE}.png
+ mv pngall/transport_slipway.glow.0092DA.${SIZE}.png /usr/share/icons/sjjb/png/transport/slipway.glow.0092DA.${SIZE}.png
+ mv pngall/transport_taxi_rank.n.0092DA.${SIZE}.png /usr/share/icons/sjjb/png/transport/taxi_rank.n.0092DA.${SIZE}.png
+ mv pngall/transport_traffic_lights.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/transport/traffic_lights.glow.000000.${SIZE}.png
+ mv pngall/transport_train_station.glow.AC39AC.${SIZE}.png /usr/share/icons/sjjb/png/transport/train_station.glow.AC39AC.${SIZE}.png
+ mv pngall/water_tower.glow.000000.${SIZE}.png /usr/share/icons/sjjb/png/water/tower.glow.000000.${SIZE}.png
+done
+
+echo Done. You man delete ./Icons now.
diff --git a/osmt/osmt.mml b/osmt/osmt.mml
index abe1936..1e0d166 100644
--- a/osmt/osmt.mml
+++ b/osmt/osmt.mml
@@ -506,6 +506,7 @@
}
}
],
+ "srs": "+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0.0 +k=1.0 +units=m +nadgrids=@null +wktext +no_defs +over",
"name": "osmt",
"description": "OpenStreetMap like map style for overlaying on aerial imagery"
}
--
2.47.3
From d0ef493144660e30afa8257250d6c04233bac576 Mon Sep 17 00:00:00 2001
From: Michael Schierl <schierlm@gmx.de>
Date: Fri, 3 Apr 2026 22:38:43 +0200
Subject: [PATCH 2/2] Update for carto6 database schema
---
osmt/osmt.mml | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/osmt/osmt.mml b/osmt/osmt.mml
index 1e0d166..597c14d 100644
--- a/osmt/osmt.mml
+++ b/osmt/osmt.mml
@@ -102,7 +102,7 @@
"id": "service",
"class": "road",
"Datasource": {
- "table": "(\n SELECT\n way,\n highway,\n bridge,\n tunnel,\n oneway,\n access,\n service\n FROM planet_osm_line\n WHERE highway in ('service')\n) AS service_hwy",
+ "table": "(\n SELECT\n way,\n highway,\n bridge,\n tunnel,\n oneway,\n access,\n tags->'service' as service\n FROM planet_osm_line\n WHERE highway in ('service')\n) AS service_hwy",
"key_field": "",
"geometry_field": "way",
"type": "postgis"
@@ -258,7 +258,7 @@
"id": "sport",
"class": "poi",
"Datasource": {
- "table": "(\n (\n SELECT way, sport\n FROM planet_osm_point\n WHERE (sport IS NOT NULL)\n )\n UNION\n (\n SELECT way, sport\n FROM planet_osm_polygon\n WHERE (sport IS NOT null)\n )\n) AS sport_poi",
+ "table": "(\n (\n SELECT way, tags->'sport' as sport\n FROM planet_osm_point\n WHERE (tags ? 'sport')\n )\n UNION\n (\n SELECT way, tags->'sport' as sport\n FROM planet_osm_polygon\n WHERE (tags ? 'sport')\n )\n) AS sport_poi",
"key_field": "",
"geometry_field": "way",
"type": "postgis"
--
2.47.3
@schierlm

schierlm commented Apr 6, 2026

Copy link
Copy Markdown
Author

@andrewharvey Maybe you want to incorporate those patches into your repo?

@safen are you still trying/interested in using this style?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment