OSMTileProxy é um proxy de cache para blocos de mapas do Openstreetmap ou outro provedor de blocos de mapas.
Ele expõe o endpoint /tiles/{provider}/{level:int}/{x:int}/{y:int} retornando uma imagem para determinadas coordenadas de bloco. Primeiro, ele carrega um bloco do provedor, armazena-o no cache do disco e depois usa essa imagem até que ela expire.
Tiles
da seção de configuração em appsettings.json
contêm tudo o que é necessário para proxy e cache.
"Tiles": {
"Cache": "/var/www/tiles",
"Providers": [
{
"Id": "osm",
"Url": "https://tile.openstreetmap.org/{0}/{1}/{2}.png",
"UserAgent": "Your-user-agent",
"ContentType": "image/png",
"UseWebp": false,
"MinZoom": 1,
"MaxZoom": 19
}
]
}
Abaixo está a explicação dos parâmetros da seção.
Cache
- pasta onde os blocos são armazenados em cache, na configuração de desenvolvimento appsettings.Development.json
é c:temptiles, certifique-se de que c:temp existe ou especifique outro local.
Providers
- conjunto de parâmetros de provedor.
Providers:[i]:Id
- identificador arbitrário do provedor, usado no endpoint, por exemplo /osm/2/1/1.
Providers:[i]:Url
- padrão de endpoint dos provedores, onde {0} é o nível (zoom do mapa), {1} - coordenada x de um bloco, {2} - coordenada y de um bloco.
Providers:[i]:UserAgent
- é obrigatório para o serviço Openstreetmap, especifique seu User-Agent exclusivo.
Providers:[i]:ContentType
- valor do cabeçalho Content-Type em resposta, quando UseWebp
(veja abaixo) é true
este cabeçalho é sempre definido como image/webp.
Providers:[i]:UseWebp
- parâmetro opcional (o valor padrão é false
). Quando true
, OSMTileProxy converte imagens de bloco em formato webp.
Providers:[i]:MinZoom
- parâmetro opcional (o valor padrão é 1). Especifica o nível mínimo de zoom para o provedor de blocos, usado para validação.
Providers:[i]:MaxZoom
- parâmetro opcional (o valor padrão é 19). Especifica o nível máximo de zoom para o provedor de blocos, usado para validação.
Se implantado como contêiner docker, vincule o diretório de cache ao seu contêiner, por exemplo
docker run -p 8080:8080 --name osmtileproxy -v /var/www/tiles:/var/www/tiles -d osmtileproxy:latest