使用QGIS切片,使用Nginx反向代理本地瓦片,并在QGIS加载图层

发布时间 2023-08-21 14:04:12作者: 宇宙野牛

使用QGIS切片(以tif为例)

  1. 新建QGIS工程(.qgz)
  2. 将tif文件拖到图层区
  3. 打开 工具箱-->栅格工具-->生成XYZ瓦片(目录)
  4. 设置参数:坐标范围、层级、瓦片格式、输出目录等,点击运行
    输出目录不选则默认会生成到C盘的临时目录
  5. 运行完毕后记录出现这段文字,关闭对话框,点击右下角路径可以预览使用leaflet加载的瓦片图层,瓦片也已经在指定目录生成


使用Nginx反向代理本地瓦片

  1. 配置端口、代理关键词、代理路径
#    地图瓦片
    server {
        listen       8200;
        server_name  localhost;

        location /map/ {
            alias   E:/qgis_files/影像/test_tile_output/;
			add_header Access-Control-Allow-Origin '*';  
			add_header Access-Control-Allow-Credentials "true";
			add_header Access-Control-Allow-Methods 'GET, POST, OPTIONS';
			add_header Access-Control-Allow-Headers  'token,DNT,X-Mx-ReqToken,Keep-Alive,User-Agent,XRequested-With';
			if ($request_method = 'OPTIONS') {
				return 200;
			}
        }
    } 
  1. 启动nginx,访问http://localhost:8200/map/1/1/1.png(端口和map替换成自己配置的),能够访问瓦片则代理成功
    如果报错404或其他,无法正常访问,可查看nginx目录下 \logs\error.log 错误日志

在QGIS加载XYZ图层

  1. QGIS 图层-->添加图层-->添加XYZ图层…
  2. 点击新建,在对话框中填写名称和URL,点击OK
  3. 在下拉选项中选择刚刚新建的连接,点击添加
  4. 可以看到瓦片图层。可以双击图层切换到源标签调整CRS为4326

关于目录的设置。我在发这篇的时候重新切了一次,操作一样,结果QGIS加载出来瓦片是错乱的(本身生成的leaflet示例没有错乱),两次的区别在于第二次直接将切片0~5的文件夹放在了映射目录下,而第一次又多套了一层。刚尝试入门不清楚原因,记录一下,还是尽量多带层目录。