Overv / openstreetmap-tile-server

Docker file for a minimal effort OpenStreetMap tile server
Apache License 2.0
1.2k stars 482 forks source link

How do I force latin names for countries like Greece or China? #406

Open gsontheimer opened 8 months ago

gsontheimer commented 8 months ago

The title says it all. Is there an environment variable I can set to force latin names?

Istador commented 8 months ago

No, there isn't an environment variable for it.

Also see #24

gsontheimer commented 8 months ago

Well, then that would be something to add to the Docker code, so that an environment Variable could be used to force Latin names.

Istador commented 8 months ago

This will likely never happen, because we'd need to rewrite/adjust the SQL queries that are defined in the osm-carto repo for that. Doing that binds us harder to a specific version, which makes updating that dependency harder.

Maybe there is another style that already does this, that you can easily use instead?

YosefCohen877 commented 5 months ago

i did it like this update to Hebrew and if not success to English -

docker run \ -e DOWNLOAD_PBF=https://download.geofabrik.de/asia/israel-and-palestine-latest.osm.pbf \ -v /home/debian/gis:/data/database/ \ overv/openstreetmap-tile-server \ import

docker run \ -p 8080:80 \ -v /home/debian/gis:/data/database/ \ -d overv/openstreetmap-tile-server \ run

docker exec -it name bash psql -h localhost -U renderer gis the password is - "renderer"

save it to "/convert.sql"

BEGIN; UPDATE planet_osm_point SET name = COALESCE(tags->'name:he', tags->'name:en', name); UPDATE planet_osm_line SET name = COALESCE(tags->'name:he', tags->'name:en', name); UPDATE planet_osm_polygon SET name = COALESCE(tags->'name:he', tags->'name:en', name); UPDATE planet_osm_roads SET name = COALESCE(tags->'name:he', tags->'name:en', name); COMMIT;

\i /convert.sql

exit docker restart name

Istador commented 5 months ago

BEGIN; UPDATE planet_osm_point SET name = COALESCE(tags->'name:he', tags->'name:en', name); UPDATE planet_osm_line SET name = COALESCE(tags->'name:he', tags->'name:en', name); UPDATE planet_osm_polygon SET name = COALESCE(tags->'name:he', tags->'name:en', name); UPDATE planet_osm_roads SET name = COALESCE(tags->'name:he', tags->'name:en', name); COMMIT;

I just want to point out that this would not work with automatic updates turned on (you don't have it enabled in your posted commands, so that's fine), because the updates would revert it for changed entries. You'd need to re-run these update queries regularly or need to add them to the update script to be persistent.

YosefCohen877 commented 5 months ago

BEGIN; UPDATE planet_osm_point SET name = COALESCE(tags->'name:he', tags->'name:en', name); UPDATE planet_osm_line SET name = COALESCE(tags->'name:he', tags->'name:en', name); UPDATE planet_osm_polygon SET name = COALESCE(tags->'name:he', tags->'name:en', name); UPDATE planet_osm_roads SET name = COALESCE(tags->'name:he', tags->'name:en', name); COMMIT;

I just want to point out that this would not work with automatic updates turned on (you don't have it enabled in your posted commands, so that's fine), because the updates would revert it for changed entries. You'd need to re-run these update queries regularly or need to add them to the update script to be persistent.

My env is offline so its ok..