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