-
Notifications
You must be signed in to change notification settings - Fork 282
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
maplibre-gl-enhance 的style->sources->type: 'raster'设置tileSize: 512无效 #487
Comments
谢谢你提的issue。 |
使用的标准的EPSG:4498坐标系,代码如下: <script type="text/javascript"> var WKT = 'PROJCS["CGCS2000 / Gauss-Kruger zone 20",GEOGCS["China Geodetic Coordinate System 2000",DATUM["China 2000",SPHEROID["CGCS2000", 6378137.0, 298.257222101, AUTHORITY["EPSG","1024"]],AUTHORITY["EPSG","1043"]],PRIMEM["Greenwich", 0.0, AUTHORITY["EPSG","8901"]],UNIT["degree", 0.017453292519943295],AXIS["Geodetic longitude", EAST],AXIS["Geodetic latitude", NORTH],AUTHORITY["EPSG","4490"]],PROJECTION["Transverse_Mercator", AUTHORITY["EPSG","9807"]],PARAMETER["central_meridian", 117.0],PARAMETER["latitude_of_origin", 0.0],PARAMETER["scale_factor", 1.0],PARAMETER["false_easting", 20500000.0],PARAMETER["false_northing", 0.0],UNIT["m", 1.0],AXIS["Easting", EAST], AXIS["Northing", NORTH],AUTHORITY["EPSG","4498"]]'; // var Proj4 =' +proj=tmerc +lat_0=0 +lon_0=117 +k=1 +x_0=20500000.0 +y_0=0 +ellps=GRS80 +units=m +no_defs +type=crs' var map = new maplibregl.Map({ container: 'map', style: { version: 8, sources: { bj_dist: { type: 'raster', tileSize: 512, tiles: [ "http://localhost:9090/geoserver/postgis/gwc/service/wmts?layer=postgis:bjcgcs20&style=&tilematrixset=EPSG:4498x2&Service=WMTS&Request=GetTile&Version=1.0.0&Format=image/jpeg&TileMatrix=EPSG:4498x2:{z}&TileCol={x}&TileRow={y}", ], }, }, layers: [ { id: 'bj_dist', type: 'raster', source: 'bj_dist', minzoom: 0, maxzoom: 19 }, ] }, crs: new maplibregl.CRS('EPSG:4498', WKT, [20184047.248447325,2103881.962779923,20815952.751552675,5714206.250336334]), center: [116.5, 39.9], pitch: 45, zoom: 9, renderWorldCopies: false, }); map.addControl(new maplibregl.FullscreenControl()); map.addControl(new maplibregl.NavigationControl()); map.addControl(new maplibregl.ScaleControl()); </script> |
你的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服务地址 |
返回的瓦片不在范围内,我们数据涉密,不能提供在线的 |
没有能调试的服务,我只能猜测下问题原因: 通过你设置的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服务
The text was updated successfully, but these errors were encountered: