OSMTileProxy 是来自 Openstreetmap 或其他地图图块提供商的地图图块的缓存代理。
它公开端点 /tiles/{provider}/{level:int}/{x:int}/{y:int} 返回给定图块坐标的图像。首先,它从提供者处加载一个图块,将其存储到磁盘缓存中,然后使用该图像直到其过期。
appsettings.json中的配置部分Tiles包含代理和缓存所需的所有内容。
"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
}
]
}
下面是各部分参数的解释。
Cache - 缓存图块的文件夹,在开发配置appsettings.Development.json中为 c:temptiles,确保 c:temp 存在或指定其他位置。
Providers - 提供者参数数组。
Providers:[i]:Id - 提供者的任意标识符,在端点中使用,例如 /osm/2/1/1。
Providers:[i]:Url - 提供程序端点模式,其中 {0} 是级别(地图缩放),{1} - 图块的 x 坐标,{2} - 图块的 y 坐标。
Providers:[i]:UserAgent - 对于 Openstreetmap 服务是必需的,指定您唯一的用户代理。
Providers:[i]:ContentType - 响应中 Content-Type 标头的值,当UseWebp (见下文)为true时,此标头始终设置为 image/webp。
Providers:[i]:UseWebp - 可选参数(默认值为false )。当true时,OSMTileProxy 将平铺图像转换为 webp 格式。
Providers:[i]:MinZoom - 可选参数(默认值为 1)。指定图块提供程序的最小缩放级别,用于验证。
Providers:[i]:MaxZoom - 可选参数(默认值为 19)。指定图块提供程序的最大缩放级别,用于验证。
如果部署为 docker 容器,请将缓存目录绑定到您的容器,例如
docker run -p 8080:8080 --name osmtileproxy -v /var/www/tiles:/var/www/tiles -d osmtileproxy:latest