Замена названий улиц и прочих объектов

Не знаете, где задать вопрос? Задавайте здесь.
Intruder
Новоприбывший
Сообщения: 14
Зарегистрирован: 14 мар 2024, 17:42
Репутация: 0
Откуда: Нижегородская область

Замена названий улиц и прочих объектов

Сообщение Intruder » 14 мар 2024, 17:51

Всем доброго времени суток.
Я пока новичок в географических информационных системах, поэтому прошу помощи.
Стоит задача при использовании локальной карты отображать названия улиц, дорог и всего остального на русском языке. Использую карты openstreetmap.
С помощью библиотеки osmium удалось получить названия объектов (хранятся в теге name). Но там отображается название того региона, чья карта. Но есть теги, например name:ru, где написано название на русском языке.
Это я тоже могу получить. Но я не понимаю как в тег name записать название тега name:ru. Точнее записать то можно, но как потом собрать файл osm.pbf?

Вот в этом вопросе и прошу помощи знающих людей. Может есть другой способ? Буду очень благодарен за помощь.

trir
Гуру
Сообщения: 5292
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Замена названий улиц и прочих объектов

Сообщение trir » 14 мар 2024, 20:45

Не надо так делать
Что надо получить в итоге?

Intruder
Новоприбывший
Сообщения: 14
Зарегистрирован: 14 мар 2024, 17:42
Репутация: 0
Откуда: Нижегородская область

Re: Замена названий улиц и прочих объектов

Сообщение Intruder » 14 мар 2024, 21:36

Мне нужно чтобы отображались названия только на русском языке. Я отображаю карты через docker контейнер tile-server.

trir
Гуру
Сообщения: 5292
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Замена названий улиц и прочих объектов

Сообщение trir » 14 мар 2024, 22:19

обычно сервер кушает другие источники данных, а не pbf

Intruder
Новоприбывший
Сообщения: 14
Зарегистрирован: 14 мар 2024, 17:42
Репутация: 0
Откуда: Нижегородская область

Re: Замена названий улиц и прочих объектов

Сообщение Intruder » 14 мар 2024, 22:24

trir писал(а):
14 мар 2024, 22:19
обычно сервер кушает другие источники данных, а не pbf
Да, базу данных я уже создал с помощью контейнера tile-server. Но в БД добавились названия, которые прописаны в теге name. Я пробовал исправить на name:ru, но названия всё равно подтянулись из тега name. Можно конечно, все это поправить в БД я думаю, т.е. заменить названия. БД развернута на PostgreSQL.
Т.е., если запускать контейнер, а потом обращаться по адресу http://ip-addr:8080, то сервер отрисовывает в браузере карту как положено.

trir
Гуру
Сообщения: 5292
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Замена названий улиц и прочих объектов

Сообщение trir » 14 мар 2024, 23:04

Не проще ли стиль исправить?

Intruder
Новоприбывший
Сообщения: 14
Зарегистрирован: 14 мар 2024, 17:42
Репутация: 0
Откуда: Нижегородская область

Re: Замена названий улиц и прочих объектов

Сообщение Intruder » 15 мар 2024, 09:20

trir писал(а):
14 мар 2024, 23:04
Не проще ли стиль исправить?
Об этом я не знал. А как это сделать? Можете помочь? Куда копать, в каком направлении? Буду очень благодарен!

trir
Гуру
Сообщения: 5292
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Замена названий улиц и прочих объектов

Сообщение trir » 15 мар 2024, 11:11

В документации tile-server'а

Intruder
Новоприбывший
Сообщения: 14
Зарегистрирован: 14 мар 2024, 17:42
Репутация: 0
Откуда: Нижегородская область

Re: Замена названий улиц и прочих объектов

Сообщение Intruder » 15 мар 2024, 12:42

trir писал(а):
15 мар 2024, 11:11
В документации tile-server'а
Здесь читать https://ircama.github.io/osm-carto-tutorials/?

В общем я попробовал поравить стили, но названия так и остались на иностранном языке. Получается, что нужно заново импортировать данные в БД?
Еще мне не понятен момент вот с чем. В файле openstreetmap-carto.style есть строка:

Код: Выделить всё

node,way   name	text         linear
Я заменил ее на:

Код: Выделить всё

node,way   name:ru		text         linear
Правильно ли я сделал? Если заново импортировать данные в БД данные будут браться отсюда?

trir
Гуру
Сообщения: 5292
Зарегистрирован: 09 апр 2010, 19:30
Репутация: 1015
Ваше звание: просто мимо прохожу
Откуда: Ё-бург

Re: Замена названий улиц и прочих объектов

Сообщение trir » 15 мар 2024, 13:16

может надо запустить перегенерацию тайтлов

Intruder
Новоприбывший
Сообщения: 14
Зарегистрирован: 14 мар 2024, 17:42
Репутация: 0
Откуда: Нижегородская область

Re: Замена названий улиц и прочих объектов

Сообщение Intruder » 15 мар 2024, 13:20

trir писал(а):
15 мар 2024, 13:16
может надо запустить перегенерацию тайтлов
Перегенерация - это render_list? Если да, то результата перегенерация не дала. Буду пробовать заново. Исправил стиль, посмотрим что получится.
По результату напишу.

AlexRomantsov
Завсегдатай
Сообщения: 316
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 137
Ваше звание: хм, сам не знал
Откуда: Томск

Re: Замена названий улиц и прочих объектов

Сообщение AlexRomantsov » 18 мар 2024, 04:56

При помощи параметров файлов openstreetmap-carto.style и openstreetmap-carto.lua (или их эквивалентов для osmium) можно назначить, как именно разложить структуру источника OSM на более удобную расширенную структуру таблиц в Postgres. Команда
"node,way name:ru text polygon" позволит сохранить тег name:ru (если он есть!) как поле для точечного, линейного и полигонального слоев. Но.. Чуда может не случится. Дополнительные теги типа name:ru встречаются далеко не во всех объектах. Столицы государств, крупные города, страны мира - да, их наименования есть в тегах для множества языков. А вот реки, улицы и другие "локальные" топонимы - часто только в оригинальном языке. Если Вам нужна вся карта мира на русском - без многомесячного допиливания поля name:ru не обойтись :).
Вот здесь не гладко все. Объекты OSM, в таблицах Postgres, создаются без уникальных ключевых полей. И очень сложно корректно модифицировать нужные записи, например sql запросами. А то что измените - может подломать реляции, таблицы и по итогу - рендер тайлов. А обновления базы свежим OSM - накроет ваши правки :)
Последний раз редактировалось AlexRomantsov 18 мар 2024, 05:30, всего редактировалось 3 раза.

AlexRomantsov
Завсегдатай
Сообщения: 316
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 137
Ваше звание: хм, сам не знал
Откуда: Томск

Re: Замена названий улиц и прочих объектов

Сообщение AlexRomantsov » 18 мар 2024, 05:22

Недостаточны не только русские наименования, часто нет и английских (и в целом - любых латинских). В аравии, на севере африки - преобладают французкие теги, других нет. Где то - только немецкие, или испанские, в общем по старому колониальному наследию. Ну и Китай, Корея, Япония - сами в себе. Карту OSM создает сообщество жителей Земли, и условный филиппинец, обозначивший свой поселок, не озабочен его описанием на сотне языков мира.

tikhpetr
Гуру
Сообщения: 1088
Зарегистрирован: 30 окт 2014, 16:33
Репутация: -248090259
Откуда: г. Жуковский МО

Re: Замена названий улиц и прочих объектов

Сообщение tikhpetr » 18 мар 2024, 05:32

"В аравии, на севере африки - преобладают французкие теги, других нет. Где то - только немецкие, или испанские, в общем по старому колониальному наследию."
Для молодого поколения удобно изучать историю географических открытий.))

AlexRomantsov
Завсегдатай
Сообщения: 316
Зарегистрирован: 24 мар 2022, 05:54
Репутация: 137
Ваше звание: хм, сам не знал
Откуда: Томск

Re: Замена названий улиц и прочих объектов

Сообщение AlexRomantsov » 18 мар 2024, 05:42

Intruder писал(а):
15 мар 2024, 12:42
Получается, что нужно заново импортировать данные в БД?
Еще мне не понятен момент вот с чем. В файле openstreetmap-carto.style есть строка:

Код: Выделить всё

node,way   name	text         linear
Я заменил ее на:

Код: Выделить всё

node,way   name:ru		text         linear
Правильно ли я сделал? Если заново импортировать данные в БД данные будут браться отсюда?

Не правильно. Надо не заменять, а добавить еще строчку в конфигуратор, т.е. в таблице postgres оставить поле с оригинальным name и добавить еще одно name:ru. Заново импортировать. И подпиливать стили, для отображения на карте значений из name:ru

Ответить

Вернуться в «Я новичок!»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 8 гостей