Инструменты пользователя

Инструменты сайта

  • Показать исходный текст
  • История страницы
  • Ссылки сюда
  • Оставить на чай
  • Экспорт в PDF
  • Наверх

  • software:linux_server:tile_map_server

    Содержание

    Tile map server

    Введение

    На этой странице показано, как можно использовать OpenStreetMap Carto для реализации тайлового сервера с использованием того же программного обеспечения, что и OpenStreetMap. Он включает в себя пошаговые инструкции по установке Tile Server на основе Ubuntu и ограничен описанием некоторых передовых методов, учитывая, что основной целью этого сайта является предоставление руководств по настройке среды разработки OpenStreetMap Carto и предложение рекомендации по редактированию стиля.
    OSM Tile Server — это веб-сервер, специализирующийся на доставке растровых карт, представляющих их как статические тайлы и способный выполнять рендеринг в реальном времени или предоставлять кэшированные изображения. Веб-программное обеспечение, принятое OpenStreetMap, представляет собой HTTP-сервер Apache вместе со специальным подключаемым модулем с именем mod_tile и связанным с ним внутренним стеком, способным генерировать плитки во время выполнения; программы и библиотеки объединены в цепочку для создания сервера тайлов.
    Как это часто бывает с OpenStreetMap, существует множество способов достижения цели, и почти все компоненты имеют альтернативы, которые имеют различные преимущества и недостатки. В этом руководстве описывается стандартный процесс установки OSM Tile Server, используемого на OpenStreetMap.org.
    Он состоит из следующих основных компонентов:

    • Mapnik
    • Apache
    • Mod_tile
    • renderd
    • osm2pgsql
    • PostgreSQL/PostGIS database, to be installed locally (suggested) or remotely (might be slow, depending on the network).
    • carto
    • openstreetmap-carto


    Все упомянутое программное обеспечение является открытым исходным кодом.
    Для тайлового сервера требуется база данных PostGIS , в которой хранятся геопространственные объекты, заполненные инструментом osm2pgsql из данных OSM. Кроме того, необходим каталог файловой системы, включающий файл OSM.xml , символы карты (проверьте подкаталог openstreetmap-carto/symbols) и шейп-файлы (проверьте подкаталог openstreetmap-carto/data). OSM.xml предварительно создается инструментом carto из стиля openstreetmap-carto (project.mml и все связанные файлы CartoCSS, включенные в openstreetmap-carto).
    Когда веб-сервер Apache получает запрос от браузера, он вызывает подключаемый модуль mod_tile , который, в свою очередь, проверяет, была ли плитка уже создана (из предыдущего рендеринга) и кэширована, чтобы она была готова к использованию; в этом случае mod_tile немедленно отправляет плитку обратно на веб-сервер. И наоборот, если запрос необходимо отобразить, то он ставится в очередь на серверную часть рендеринга , которая отвечает за вызов Mapnik для выполнения фактического рендеринга; renderd — это процесс- демон , включенный в исходники mod_tile и связанный с mod_tile через очереди UNIX. визуализированныйявляется стандартным бэкэндом, используемым в настоящее время www.openstreetmap.org, даже если некоторые реализации OSM используют Tirex ; Mapnik извлекает данные из базы данных PostGIS в соответствии с информацией о стиле openstreetmap-carto и динамически отображает тайл. renderd возвращает созданный тайл на веб-сервер и, в свою очередь, в браузер.
    Демон renderd реализует механизм очередей с несколькими уровнями приоритета, чтобы обеспечить актуальность просмотра с учетом доступных ресурсов рендеринга. Наивысший приоритет — для рендеринга «на лету» тайлов, еще не находящихся в кэше тайлов, два уровня приоритета для повторного рендеринга устаревших тайлов «на лету» и две очереди фонового пакетного рендеринга. Чтобы избежать проблем с каталогами, которые становятся слишком большими, и чтобы избежать слишком большого количества крошечных файлов, Mod_tile / renderd хранит визуализированные тайлы в «метатайлах», в специальной хешированной структуре каталогов.
    Даже если тайловый сервер динамически генерирует тайлы во время выполнения, они также могут быть предварительно визуализированы для просмотра в автономном режиме с помощью специального инструмента с именем render_list , который обычно используется для предварительного рендеринга тайлов с низким уровнем масштабирования и требует значительного времени для выполнения процесса (десятки часов в случае, если вся планета предварительно визуализируется); эта утилита включена в mod_tile , а также в другой инструмент с именем render_expired , который предоставляет методы для разрешения истечения срока действия тайлов карты. Более подробное описание render_list и render_expired можно найти на их справочных страницах.
    Справочную информацию о методе истечения срока действия тайлов можно найти в механизме истечения срока действия тайлов.

    Общая настройка для Ubuntu

    Обновите Ubuntu

    Убедитесь, что ваша система Ubuntu полностью обновлена:

    lsb_release -a

    команда возвращает версию Ubuntu.

    Чтобы обновить систему:

    sudo apt-get update

    команда загружает списки пакетов из репозиториев и «обновляет» их, чтобы получить информацию о новейших версиях пакетов и их зависимостях. Это будет сделано для всех репозиториев и PPA. Из http://linux.die.net/man/8/apt-get

    sudo apt list --upgradable

    команда выведит списки пакетов готовых к обновлению

    sudo apt-get -y upgrade

    команда обновляет все устаревшие пакеты и применить исправления безопасности с выводом подсказок « Да» или «Нет », спрашивая, нужно ли устанавливать зависимые пакеты или нет. Если вы устанавливаете большой пакет или пакет с большим количеством зависимостей, или устанавливаете несколько пакетов, ответы на эти запросы не позволят вам переключиться на выполнение какой-либо работы.

    sudo apt upgrade

    команда обновляет все устаревшие пакеты и применить исправления безопасности

    Установите необходимые инструменты

    Основные элементы:

    sudo apt-get -y install ca-certificates gnupg curl unzip gdal-bin \
    tar wget bzip2 build-essential clang python3-psycopg2 python3-yaml \
    python3-requests postgresql-client


    Дополнительные элементы:

    sudo apt-get -y install munin-node munin protobuf-c-compiler libtiff5-dev
    libcairomm-1.0-dev libagg-dev lua5.1 liblua5.1-0-dev


    Проверьте предварительные условия, предложенные openstreetmap-carto.

    FROM ubuntu:bionic
    
    # # Зависимости стиля
    RUN apt-get update && apt-get install --no-install-recommends -y \
        ca-certificates curl gnupg postgresql-client python3 python3-distutils \
        fonts-hanazono fonts-noto-cjk fonts-noto-hinted fonts-noto-unhinted \
        mapnik-utils nodejs npm ttf-unifont unzip && rm -rf /var/lib/apt/lists/*
    
    # Kosmtik with plugins, forcing prefix to /usr because bionic sets
    # npm prefix to /usr/local, which breaks the install
    RUN npm set prefix /usr && npm install -g kosmtik
    
    РАБОЧИЙ КАТАЛОГ /usr/lib/node_modules/kosmtik/
    RUN kosmtik plugins --install kosmtik-overpass-layer \
                        --install kosmtik-fetch-remote \
                        --install kosmtik-overlay \
                        --install kosmtik-open-in-josm \
                        --install kosmtik-map-compare \
                        --install kosmtik-osm-data-overlay \
                        --install kosmtik-mapnik-reference \
                        --install kosmtik-geojson-overlay \
        && cp /root/.config/kosmtik.yml /tmp/.kosmtik-config.yml
    
    # Closing section
    RUN mkdir -p /openstreetmap-carto
    WORKDIR /openstreetmap-carto
    
    USER 1000
    CMD sh scripts/docker-startup.sh kosmtik =====
    

    установим npm, диспетчер пакетов Node.js. Для этого установите пакет npmс помощью apt:

    sudo apt install npm


    перейдем в режим суперпользователя

    sudo -i


    проверим зависимости стиля

    apt-get update && apt-get install --no-install-recommends -y \
        ca-certificates curl gnupg postgresql-client python3 python3-distutils \
        fonts-hanazono fonts-noto-cjk fonts-noto-hinted fonts-noto-unhinted \
        mapnik-utils nodejs npm ttf-unifont unzip && rm -rf /var/lib/apt/lists/*


    E: Package 'ttf-unifont' has no installation candidate
    пакет 'ttf-unifont' установим позже (сейчас не критично)
    к проверке установки kosmtik вернемся после установки Node.js


    Для последующих шагов установки мы предполагаем, что:
    cd - по умолчанию используется ваш домашний каталог.

    Настроить swap

    SWAP (своп) — это механизм виртуальной памяти, при котором часть данных из оперативной памяти (ОЗУ) перемещается на хранение на HDD (жёсткий диск), SSD (твёрдотельный накопитель).
    Импорт картографических данных и управление ими занимают много оперативной памяти, и обычно требуется swap.
    Чтобы проверить, настроен ли раздел подкачки в вашей системе, используйте одну из следующих двух команд:

    swapon -s


    в данном случае установлено:

    • • 4gb файла подкачки
    free -m

    Отображение количества свободной и используемой памяти в системе (отметьте строку, указывающую Swap ):

    в данном случае используется:

    • • ОЗУ: 544mb из доступных 16gb
    • • файл подкачки: 0mb из доступных 4gb.


    Если у вас нет активного раздела подкачки, особенно если ваша физическая память мала, вам следует добавить файл подкачки. Создайте файл подкачки размером 2G в корневой файловой системе:

    sudo fallocate -l 2G /swapfile


    Установим правильный тип разрешений.

    sudo chmod 600 /swapfile


    Используйте mkswap утилиту, чтобы настроить файл как область подкачки Linux:

    sudo mkswap /swapfile


    Включить файл подкачки

    sudo mkswap /swapfile


    проверим результат

    free -m


    Чтобы сделать изменение постоянным, откройте /etc/fstab файл и добавьте следующую строку:

    /etc/fstab
    /swapfile swap swap defaults 0 0

    Откроем файл fstab, находящийся в папке ets в редакторе:

    vi /etc/fstab


    • i -начало редактирования
    • esc -конец редактирования
    • :wq! -сохранение и выход из редактора


    Swap в linux
    Рекомендованный размер swap в linux

    Настройка переменных локализации

    • Locale — это набор переменных среды, которые определяют язык, страну и настройки кодировки символов (или любые другие особые предпочтения варианта) для ваших приложений и сеанса оболочки в системе Linux. Эти переменные среды используются системными библиотеками и локальными приложениями в системе.
    • Конфигурационный файл находится /etc/default/locale.
    • Просмотрим, какие локали в настоящее время определены для текущей учетной записи пользователя:
    locale


    Чтобы установить локализацию ru_RU:

    export LANGUAGE=ru_RU.UTF-8
    export LANG=ru_RU.UTF-8
    export LC_ALL=ru_RU.UTF-8
    • Экспортированные переменные можно поместить в файл /etc/environment.
    • Новые локали также можно создать, выполнив:
     
    sudo locale-gen ru_RU ru_RU.UTF-8
    sudo dpkg-reconfigure locales

    Создание пользователя UNIX

    • Мы предполагаем, что вы уже создали пользователя для входа во время установки Ubuntu Server, который будет использоваться для запуска сервера тайлов. Предположим, что выбранное вами имя пользователя — alisa. В этом документе каждый раз, когда будет упоминается alisa, замените его своим фактическим именем пользователя.
    • Если вам нужно создать нового пользователя:
    sudo useradd -m alisa
    sudo passwd alisa

    • Установите пароль при появлении запроса.
    • Повторите пароль для правильности ввода.

    Установить Git

    Иногда Git может быть уже предустановлен.

    git --version


    в случае отсутствия установим:

    apt-get install -y git


    - Справочник Pro Git

    Установка библиотеки Mapnik

    Mapnik используется для рендеринга данных OpenStreetMap в тайлы, управляемые веб-сервером Apache через renderd и mod_tile. Эта установка предусматривает, что все команды выполняются в окружении обычной учетной записи (не root) с использованием «sudo». Не пытайтесь и не делайте все в окружении root; система не будет работать. (выход: exit)

    exit 


    Создайте в корне каталог src для загрузки исходников

    mkdir -p ~/src 


    и перейдите в него:

    cd ~/src


    sudo apt install python-is-python3


    
    
    


    df

    Зависимость FreeType в Ubuntu 16.04 LTS

    Установить библиотеку Mapnik из пакета

    Или установите Mapnik из исходников

    Установить Boost из пакета

    В качестве альтернативы установите последнюю версию Boost из исходного кода

    Установите HarfBuzz из пакета

    Установите HarfBuzz из исходного кода

    Собрать библиотеку Mapnik из исходников

    Убедитесь, что Mapnik был правильно установлен

    Настроить брандмауэр

    Установить HTTP-сервер Apache

    Как узнать IP-адрес вашего сервера

    Установить Mod_tile из пакета

    Mod_tile/render для Ubuntu 18.04 и Ubuntu 20.04

    Mod_tile/рендеринг для Ubuntu 21.04

    Установить Mod_tile из исходников

    Установка Python

    Установите Yaml и диспетчер пакетов для Python

    Установите утилиты Mapnik

    Установить openstreetmap-carto

    Установите шрифты, необходимые для openstreetmap-carto

    Старый унифонт Средний шрифт

    Установите Node.js

    Версия дистрибутива из менеджера пакетов APT

    Установите Node.js с помощью инструмента управления версиями

    Проверьте версии Node.js

    Установите carto и создайте XML-таблицу стилей Mapnik

    Установите PostgreSQL и PostGIS

    Создайте экземпляр PostGIS

    Установите переменные среды

    Добавьте пользователя и предоставьте доступ к базе данных gis

    Включение удаленного доступа к PostgreSQL

    Настройка базы данных

    Минимальные требования к настройке

    Необязательные дополнительные требования к настройке

    Установить Osm2pgsql

    Сгенерировать Osm2pgsql из исходников

    Получите извлечение данных OpenStreetMap

    Загрузить данные в PostGIS

    Создайте папку данных

    Создание индексов и предоставление пользователям

    Настроить визуализацию

    Настроить Apache

    Предварительный рендеринг тайлов

    Устранение неполадок Apache, mod_tile и renderd

    Формат имен тайлов сервера тайлов OpenStreetMap

    Развертывание собственной карты Slippy Map

    OpenLayers

    Листовка

    Дополнения и файлы

    Упомянутые команды:

    • sudo apt update — обновляет список пакетов последней информацией из настроенных репозиториев.
    • sudo apt update — устанавливает доступные обновления для вашей текущей версии Ubuntu.
    • sudo apt dist-upgrade — выполняет более тщательное обновление, которое более тщательно обрабатывает зависимости пакетов.
    • sudo apt autoremove — удаляет из системы неиспользуемые или устаревшие пакеты.
    • sudo restart — перезагружает систему, чтобы все изменения вступили в силу.
    • sudo apt install update-manager-core — устанавливает основной пакет менеджера обновлений, если он еще не установлен.
    • sudo do-release-upgrade — запускает процесс обновления выпуска Ubuntu.

    Обсуждение

    Ваш комментарий:

    Внимание! Оставляя комментарий Вы соглашаетесь с пониманием и несете ответственность за свои действия гл.2 ст.18 Федерального закона №38-ФЗ «О рекламе» и ст.3 п.1 Федерального закона №152-ФЗ «О персональных данных»
    126 -14 = 
     
    software/linux_server/tile_map_server.txt · Последнее изменение: 2024/05/19 22:33 — vladpolskiy