Появился вот такой вопрос, можно ли как то отрендерить карту всей планеты с русскоязычным отображанием называний городов и т.п.
На хабре нашел одну статью от 2015 года ( https://habr.com/ru/post/259141/), но я не смог выполнить скрипты в БД.
Во первых некоторых колонков в таблицах нет - это поправил
во вторых, при выполнение скрипты вываливает ошибку - ERROR: column data.name:ru does not exist.
Если кто то сталкивался с уже с таким, помогите советом как сдлеать так чтобы названия на карта были русскоязычные.
Короткий ответ — да, можно. Это делает mapsme, это делает спутник, это делает википедия, это сделано в стиле veloroad.
Длинный ответ зависит от контекста. Отображать карту можно десятком разных способов, и ответ в каждом случае разный.
У меня поднят локалный osm сервер, у которого нет выхода в инет. Настроена связка mapnik+posgres+oms2pgsql+renderd. Сейчас залил карту всей планеты в базу данных, и на основе этих данный сейчас идет рендер тайлов.
Заказчик увидел что русские названия только в России (удивительно, правда ?)) ) и попросил узнать если ли возможность перевести.
внтури русскоязычных стран (РФ, несколько стран эксс-СССР) в name вполне понятно пишут русскоязычное название.
за пределами русскоязычной среды в name пишут названия на своем языке.
для того чтобы объекту присвоить русскоязычное имя используют тег name:ru=*
посомтри сколько у Лондона иностранных name
вполне понтяно name:ru прописан не везде, в таком случае есть рекомендация брать name и транслитерировать смотри name:.
Судя по ошибке column data.name:ru does not exist, наверняка стилевой файл неправильно составлен. В нём указывается в частности, для каких тегов будут созданы свои колонки в sql-таблицах. Я бы ещё раз посмотрел на пункт “3. Сконфигурируем поддержку нужных языков в настройках утилиты osm2pgsql” статьи с хабра.
pip3.6 install mapnik2
WARNING: Running pip install with root privileges is generally not a good idea. Try `pip3.6 install --user` instead.
Collecting mapnik2
Using cached https://files.pythonhosted.org/packages/37/8d/2dd0ceb156ab78071bc87402015e5aaf398b39e9f400221145bdb36391a5/mapnik2-2.2.0.zip
Complete output from command python setup.py egg_info:
Traceback (most recent call last):
File "<string>", line 1, in <module>
File "/tmp/pip-build-tbjmv12d/mapnik2/setup.py", line 10
exec open('src/mapnik/utils.py').read() in mapnik_utils
^
SyntaxError: invalid syntax
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in /tmp/pip-build-tbjmv12d/mapnik2/
Подскажите что я не правильно делаю.
Да все стоит на centos7.
Я бы выяснил, на какую версию Python рассчитан скрипт ./generate_xml.py и дальше разбирался бы, почему не находятся байдинги mapnik имеено в этой питоновской среде.
Подключения хэдеров по абсолютному пути #include </libxml2/libxml/parser.h> не должно быть,
обычно используются относительные пути. Как предположение, файл, в котором появилась эта ошибка, был сгенерирован автоматически с параметром типа PREFIX, INCLUDE или подобном, установленном в “/”, тогда как должен был иметь значение “/usr/include” или вообще пустое.
Выяснить, как появился файл, в котором возникает ошибка компиляции file not found. Если он генерируется автоматически, то смотреть, какие параметры есть у скрипта/системы сборки для указания путей до библиотек. Если не автоматически, то в инструкции должно быть чётко написано, какими костылями можно заставить это работать. По моим представлениям, заставить скомпилиться строчку #include </libxml2/libxml/parser.h> можно только симлинком /libxml2 → /usr/include/libxml2, но это извращение.