GeoServer /external.geotiff端点能否一步完成存储创建与图层发布?
如何通过单次请求在GeoServer中创建外部GeoTIFF存储并发布图层?
你目前使用/external.geotiff端点上传文件时需要分两步操作:
- 创建存储:
PUT /geoserver/rest/workspaces/{workspace}/coveragestores/{store-name}/external.geotiff?recalculate=nativebbox,latlonbbox Content-Type: text/plain Body: /path/to/your/file.tif
- 发布图层:
POST /geoserver/rest/workspaces/{workspace}/coveragestores/{store-name}/coverages Content-Type: text/xml Body: <coverage> <name>{storeName}</name> <nativeName>{native file name without extension}</nativeName> </coverage>
跳过第二步时调用WMS的/geoserver/wms?service=WMS&version=1.1.0&request=GetMap&layers...请求会返回“图层未定义”错误,而当存储名称与原生文件名(不含扩展名)相同时,仅第一步操作就能自动完成图层发布。
要实现单次请求同时创建存储并发布图层,你可以在创建存储的PUT请求中添加publish=true参数:
PUT /geoserver/rest/workspaces/{workspace}/coveragestores/{store-name}/external.geotiff?recalculate=nativebbox,latlonbbox&publish=true Content-Type: text/plain Body: /path/to/your/file.tif
添加publish=true参数后,GeoServer会自动基于存储的GeoTIFF文件信息创建并发布对应的图层,无需再单独发送发布图层的POST请求。此时直接调用WMS的GetMap请求就能正常访问图层,不会出现“图层未定义”的错误。
内容的提问来源于stack exchange,提问作者Mandroid
相关产品推荐
相关产品推荐

