Замена названий улиц и прочих объектов
-
- Новоприбывший
- Сообщения: 14
- Зарегистрирован: 14 мар 2024, 17:42
- Репутация: 0
- Откуда: Нижегородская область
Замена названий улиц и прочих объектов
Всем доброго времени суток.
Я пока новичок в географических информационных системах, поэтому прошу помощи.
Стоит задача при использовании локальной карты отображать названия улиц, дорог и всего остального на русском языке. Использую карты openstreetmap.
С помощью библиотеки osmium удалось получить названия объектов (хранятся в теге name). Но там отображается название того региона, чья карта. Но есть теги, например name:ru, где написано название на русском языке.
Это я тоже могу получить. Но я не понимаю как в тег name записать название тега name:ru. Точнее записать то можно, но как потом собрать файл osm.pbf?
Вот в этом вопросе и прошу помощи знающих людей. Может есть другой способ? Буду очень благодарен за помощь.
Я пока новичок в географических информационных системах, поэтому прошу помощи.
Стоит задача при использовании локальной карты отображать названия улиц, дорог и всего остального на русском языке. Использую карты openstreetmap.
С помощью библиотеки osmium удалось получить названия объектов (хранятся в теге name). Но там отображается название того региона, чья карта. Но есть теги, например name:ru, где написано название на русском языке.
Это я тоже могу получить. Но я не понимаю как в тег name записать название тега name:ru. Точнее записать то можно, но как потом собрать файл osm.pbf?
Вот в этом вопросе и прошу помощи знающих людей. Может есть другой способ? Буду очень благодарен за помощь.
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Замена названий улиц и прочих объектов
Не надо так делать
Что надо получить в итоге?
Что надо получить в итоге?
-
- Новоприбывший
- Сообщения: 14
- Зарегистрирован: 14 мар 2024, 17:42
- Репутация: 0
- Откуда: Нижегородская область
Re: Замена названий улиц и прочих объектов
Мне нужно чтобы отображались названия только на русском языке. Я отображаю карты через docker контейнер tile-server.
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Замена названий улиц и прочих объектов
обычно сервер кушает другие источники данных, а не pbf
-
- Новоприбывший
- Сообщения: 14
- Зарегистрирован: 14 мар 2024, 17:42
- Репутация: 0
- Откуда: Нижегородская область
Re: Замена названий улиц и прочих объектов
Да, базу данных я уже создал с помощью контейнера tile-server. Но в БД добавились названия, которые прописаны в теге name. Я пробовал исправить на name:ru, но названия всё равно подтянулись из тега name. Можно конечно, все это поправить в БД я думаю, т.е. заменить названия. БД развернута на PostgreSQL.
Т.е., если запускать контейнер, а потом обращаться по адресу http://ip-addr:8080, то сервер отрисовывает в браузере карту как положено.
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Замена названий улиц и прочих объектов
Не проще ли стиль исправить?
-
- Новоприбывший
- Сообщения: 14
- Зарегистрирован: 14 мар 2024, 17:42
- Репутация: 0
- Откуда: Нижегородская область
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Замена названий улиц и прочих объектов
В документации tile-server'а
-
- Новоприбывший
- Сообщения: 14
- Зарегистрирован: 14 мар 2024, 17:42
- Репутация: 0
- Откуда: Нижегородская область
Re: Замена названий улиц и прочих объектов
Здесь читать https://ircama.github.io/osm-carto-tutorials/?
В общем я попробовал поравить стили, но названия так и остались на иностранном языке. Получается, что нужно заново импортировать данные в БД?
Еще мне не понятен момент вот с чем. В файле openstreetmap-carto.style есть строка:
Код: Выделить всё
node,way name text linear
Код: Выделить всё
node,way name:ru text linear
-
- Гуру
- Сообщения: 5292
- Зарегистрирован: 09 апр 2010, 19:30
- Репутация: 1015
- Ваше звание: просто мимо прохожу
- Откуда: Ё-бург
Re: Замена названий улиц и прочих объектов
может надо запустить перегенерацию тайтлов
-
- Новоприбывший
- Сообщения: 14
- Зарегистрирован: 14 мар 2024, 17:42
- Репутация: 0
- Откуда: Нижегородская область
-
- Завсегдатай
- Сообщения: 316
- Зарегистрирован: 24 мар 2022, 05:54
- Репутация: 137
- Ваше звание: хм, сам не знал
- Откуда: Томск
Re: Замена названий улиц и прочих объектов
При помощи параметров файлов 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 - накроет ваши правки
"node,way name:ru text polygon" позволит сохранить тег name:ru (если он есть!) как поле для точечного, линейного и полигонального слоев. Но.. Чуда может не случится. Дополнительные теги типа name:ru встречаются далеко не во всех объектах. Столицы государств, крупные города, страны мира - да, их наименования есть в тегах для множества языков. А вот реки, улицы и другие "локальные" топонимы - часто только в оригинальном языке. Если Вам нужна вся карта мира на русском - без многомесячного допиливания поля name:ru не обойтись .
Вот здесь не гладко все. Объекты OSM, в таблицах Postgres, создаются без уникальных ключевых полей. И очень сложно корректно модифицировать нужные записи, например sql запросами. А то что измените - может подломать реляции, таблицы и по итогу - рендер тайлов. А обновления базы свежим OSM - накроет ваши правки
Последний раз редактировалось AlexRomantsov 18 мар 2024, 05:30, всего редактировалось 3 раза.
-
- Завсегдатай
- Сообщения: 316
- Зарегистрирован: 24 мар 2022, 05:54
- Репутация: 137
- Ваше звание: хм, сам не знал
- Откуда: Томск
Re: Замена названий улиц и прочих объектов
Недостаточны не только русские наименования, часто нет и английских (и в целом - любых латинских). В аравии, на севере африки - преобладают французкие теги, других нет. Где то - только немецкие, или испанские, в общем по старому колониальному наследию. Ну и Китай, Корея, Япония - сами в себе. Карту OSM создает сообщество жителей Земли, и условный филиппинец, обозначивший свой поселок, не озабочен его описанием на сотне языков мира.
-
- Гуру
- Сообщения: 1088
- Зарегистрирован: 30 окт 2014, 16:33
- Репутация: -248090259
- Откуда: г. Жуковский МО
Re: Замена названий улиц и прочих объектов
"В аравии, на севере африки - преобладают французкие теги, других нет. Где то - только немецкие, или испанские, в общем по старому колониальному наследию."
Для молодого поколения удобно изучать историю географических открытий.))
Для молодого поколения удобно изучать историю географических открытий.))
-
- Завсегдатай
- Сообщения: 316
- Зарегистрирован: 24 мар 2022, 05:54
- Репутация: 137
- Ваше звание: хм, сам не знал
- Откуда: Томск
Re: Замена названий улиц и прочих объектов
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
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 14 гостей