Open Baikaler opened 1 month ago
谢谢你提的issue。 你是说OGC的WMTS服务吗?可以先确定下你的服务是否支持512的瓦片。 请提供下下你的代码和WMTS服务的能力文档,便于我们跟踪问题。
使用的标准的EPSG:4498坐标系,代码如下:
你的wmts服务能出512的瓦片吗,通常情况下wmts都只是256的瓦片,请提供下你的wmts capabilities文档
Capabilities xmlns="http://www.opengis.net/wmts/1.0" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:gml="http://www.opengis.net/gml" xsi:schemaLocation="http://www.opengis.net/wmts/1.0 http://schemas.opengis.net/wmts/1.0/wmtsGetCapabilities_response.xsd" version="1.0.0">
这是geoserver中自定义网格集后geowebcache.xml中的
你现在得现象是什么,wmts getTile请求是否发出,回来得是否是512得瓦片?
能否提供在线的wmts服务地址
你现在得现象是什么,wmts getTile请求是否发出,回来得是否是512得瓦片?
返回的瓦片不在范围内,我们数据涉密,不能提供在线的
没有能调试的服务,我只能猜测下问题原因:
通过你设置的bounds :2.0184047248447325E7,2103881.962779923,2.0815952751552675E7,5714206.250336334 可得bounds宽度为631905.5031053498,高度为3610324.287556411。
maplibre-gl-enhance 内部的逻辑为,宽高的最大值/512为第0级的分辨率,即3610324.287556411/512=7051.414624133616。r然后用bounds的左上角和计算出的第0级分辨率,构建瓦片金字塔。
但是该WMTS服务的0级分辨率为1234.1904357526364。这可能就是无法请求到正确瓦片的原因,并不是去请求了256的瓦片 。
你提供的WMTS的Capabilities的内容格式错乱了,猜测其中的5714352.0 2.0184047248447325E7是TopLeftCorner,即该WMTS服务的瓦片左上角。根据前面提到的maplibre-gl-enhance 内部的逻辑,要让maplibre-gl-enhance内部的瓦片金字塔与你的WMTS服务的瓦片金字塔匹配,new CRS的bounds左上角需要是TopLeftCorner的值,即bounds应该调整为2.0184047248447325E7,2103881.962779923,2.0815952751552675E7,5714352.0
maplibre-gl-enhance目前不支持自定义级别对应的分辨率。所以为了能出图只有尝试修改new CRS的bounds,让mapboxgl-enhance内部计算的瓦片金字塔0级分辨率与WMTS的0级分辨率对应上。在左上角固定的前提下,WMTS服务的第0级分辨率为1234.1904357526364,可知bounds的最大宽高都应该为1234.1904357526364*512=631905.5031053498。那bounds应该调整为2.0184047248447325E7,5082446.49689465,20815952.751552675,5714352.0。
这个bounds和本身服务的bounds差别很大,需要确定是否能完全包含你的数据,如果没有完全包含的话,就会出现地图加载不完整的情况。
综上:如果根据我的解释计算出的bounds能概括你的数据范围,可以尝试加载。如果没有完全包含,那目前maplibre-gl-enhance无法加载你提供的这个服务。
maplibre-gl-enhance支持自定义级别对应的分辨率的功能我们正在规划中。
不知道我解释的清不清楚,如需更详细交流可以拨打我们的技术支持电话400-8900-866。我们的技术团队会在电话中为您提供一对一的服务,确保您的问题得到妥善解决。
如题,在使用maplibre-gl-enhance,加载wtms服务时设置tileSize: 512,经验证设置为256或者不设置或者设置512,地图都只能加载256的wtms服务