Instalación
Primero, necesitamos instalar el servicio, tenemos dos opciones, usar Docker para tener el servicio aislado o instalarlo usando NPM.
Vamos a ver cómo instalarlo usando NPM.
Hay dos versiones "tileserver-gl" y "tileserver-gl-light", la light no puede crear tiles rasterizados, solo vectoriales. Vamos a instalar la versión light porque no vamos a usar los tiles rasterizados.
npm install -g tileserver-gl-light
Una vez instalado vamos a crear todas las carpetas necesarias.
mkdir ~/tileserver
mkdir ~/tileserver/fonts
mkdir ~/tileserver/sprites
mkdir ~/tileserver/styles
Dentro de la carpeta tileserver, debemos colocar los archivos ".mbtiles" con la información del mapa. Podemos descargar este archivo desde la página Maptiler downloads.
Configurar los estilos
Dentro de la carpeta "~/tileserver/styles" debemos crear un archivo con los estilos para nuestro mapa, el nombre del archivo será "basic.json", por ejemplo.
El contenido de este archivo depende de las necesidades de cada proyecto, en el siguiente enlace, encontrarás el contenido de nuestro archivo: Contenido de basic.json.
Archivo de configuración
Otro archivo importante es el de configuración, ubicado en la carpeta "~/tileserver". Este archivo especifica los estilos y las fuentes de datos que utilizará el servicio.
Como antes el contenido de nuestro archivo de configuración está disponible para ti: Contenido de config.json
Generar fuentes
Necesitamos generar los archivos de fuentes PBFs para mostrar todos los textos del mapa.
Primero, accedemos a la carpeta "~/tileserver/fonts" y clonamos el repositorio de las fuentes.
cd ~/tileserver/fonts
git clone https://github.com/openmaptiles/fonts
A continuación, debemos instalar las dependencias de NPM.
cd ~/tileserver/fonts/fonts
npm install
Una vez instaladas las dependencias, podemos generar las fuentes.
node ./generate.js
Los archivos PBFs se colocarán en la carpeta _output.
Movemos las fuentes generadas a la carpeta "~/tileserver/fonts".
mv ~/tileserver/fonts/fonts/_output/* ~/tileserver/fonts
Una vez movido podemos eliminar la carpeta "~/tileserver/fonts/fonts".
rm -rf ~/tileserver/fonts/fonts
Probar el servicio
Ahora podemos comprobar si el servicio funciona correctamente, para ello debemos ejecutar el siguiente comando.
tileserver-gl-light -c ~/tileserver/config.json
Si funciona el servicio estará disponible en el puerto 8080.
Crear SystemD unit
Para ejecutar el servicio como demonio debemos crear un SystemD unit.
vi /etc/systemd/system/tileserver-gl-light.service
Este archivo contendrá lo siguiente:
[Unit]
Description=tileserver-gl-light
[Service]
ExecStart=/bin/bash -c "tileserver-gl-light -c config.json -s"
Restart=always
User=administrator # Cambiar por tu usuario
Group=daemon
WorkingDirectory=/home/administrator/tileserver # Cambiar por la ruta de la carpeta tileserver
[Install]
WantedBy=multi-user.target
Una vez modificado el contenido del archivo debemos ejecutar lo siguiente:
systemd daemom-reload
systemd enable tileserver-gl-light
systemd start tileserver-gl-light
Después de esto, el servicio debería estar en funcionamiento.
Para saber más sobre Tileserver GL, consulta la documentación oficial. https://tileserver.readthedocs.io/en/latest/