GeoServer:Could not list layers for this store, an error occurred retrieving them

前言

    用GeoServer发布 .tif 数据供前端调用底图时,由于网络地图通常是使用Web Mercator ,所以在ArcGIS导出数据时,使用了 WGS1984 WebMercator(auxiliary sphere)(wkid:3857) 坐标系,结果在GeoServer创建数据存储时却报错(如图,报错详情可以在geoserver的日志中查看),而改用 WGS1984 WorldMercator(wkid:3395) 却能正常创建数据存储

  • 墨卡托投影是正轴等角切圆柱投影(web墨卡托则是把地球模拟成球形而不是椭球

正文 

    ① EPSG可以到 EPSG.io: Coordinate Systems Worldwide 查询两者的区别

    ② WKID(well-known ID)可以到 地理坐标系投影坐标系 查看 (其他:ArcGIS中的WKID

    可以看到在EPSG:3857中写着

Relative to WGS 84 / World Mercator (CRS code 3395) errors of 0.7 percent in scale and differences in northing of up to 43km in the map (equivalent to 21km on the ground) may arise.

    GeoServer发布时提供的默认坐标系

    在ArcGIS 10中Web Mercator有三种编号。他们分别是WKID:3857 、WKID:102100WKID:102113(已弃用)。其实三者表示同一个投影,而这个投影跟谷歌以及Open Street Map等使用的投影EPSG:900913是一致的,只是这个编号以前人们使用的时候并没有被EPSG组织采纳。[来源] [来源]  

    为此到 $geoserver_dir/data/user_projections/epsg.properties 查看geoserver支持的坐标系:

18001、41001、42102、42103、42104、42105、42106、42301、42302、42303、42304、42305、42306、42307、42308、42309、42310、42311、45555、45556、53029、54004、54009、54012、54029、100001、100002、100003、102113、900913、391141

    还是没有什么收获...发现网上也有不少人使用EPSG:3857遇到问题 

    从他们的解决办法来看,从GDAL 3.x开始使用了WKT2(一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换),而GeoServer还未支持其解析,所以要使用GDAL 2.x版本。

    上面这篇博客写道:ESRI在表示web墨卡托投影时的WKT与OGC标准的WKT存在一定的差别,主要在于WKT_ESRI多了几个描述参数。这或许就是GeoServer无法读取arcgis导出的wkid:3857数据的真正原因(理解为ArcGIS写入的EPSG:3857不是按照标准的规范)。若从arcgis以wkid:3857导出数据,想要在geoserver发布的话,可以用GDAL处理一下,或者用其它GIS软件(如QGIS)重新用EPSG:3857导出。

    📍 ArcGIS主要依据WKT1坐标系定义标准,即 ISO 19125-1:2004 [来源]

import gdal # python旧版本
# from osgeo import gdal // python新版本

gdal.Warp('output.tif', 'input.tif', format = 'GTiff', dstSRS = 'EPSG:3857')

# dataset = gdal.Open('output.tif')
# im_proj = dataset.GetProjection() # 获取投影信息

    其它:在python中利用GDAL对tif文件进行读写的方法 

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值