笼中新月 2020-04-07 15:47 采纳率: 0%
浏览 194

请问DotSpatial 如何加载 geowebcache 发布的切片数据

这个我的访问url

   public static string urlFormat = "http://127.0.0.1:80/geowebcache/service/wms?bbox={0},{1},{2},{3}&styles=&Format=image/png&request=GetMap&layers=fsRoads&width={4}&height={5}&srs=EPSG:3857";

这是访问时的坐标转换

        ProjectionInfo mercator3857;
        ProjectionInfo wgs84Proj;


        public GeoserverStaticImageLayer(string geoserverUrlFormat)
        {
            LegendText = "Geoserver WMS地图";
            this.geoserverUrlFormat = geoserverUrlFormat;

            mercator3857 = ProjectionInfo.FromEpsgCode(3857);
            wgs84Proj = ProjectionInfo.FromEpsgCode(4326);


        }

        protected override string GetURL(Extent e)
        {
            var xys_min = new double[] { e.MinX, e.MinY };
            var xys_max = new double[] { e.MaxX, e.MaxY };
            var z = new double[1] { 0 };
            DotSpatial.Projections.Reproject.ReprojectPoints(xys_min, z, wgs84Proj, mercator3857, 0, 1);
            DotSpatial.Projections.Reproject.ReprojectPoints(xys_max, z, wgs84Proj, mercator3857, 0, 1);

            return string.Format(geoserverUrlFormat, xys_min[0], xys_min[1], xys_max[0], xys_max[1], WindowSize.Width, WindowSize.Height);

            //return string.Format(geoserverUrlFormat, e.MinX, e.MinY, e.MaxX, e.MaxY, WindowSize.Width, WindowSize.Height);
        }

 mapCtrl.ViewExtents = new Extent(103.310147408915, 30.8326236787506, 103.925908194091, 31.104076505169);//都江堰

访问不到瓦片数据 http 错误是:400:请求的水平分辨率:267.75850412617,最佳匹配:305.748113140558超过10%阈值。也许客户端配置了不正确的比例尺(分辨率),或者与GWC中的DPI设置相比已关闭?

  • 写回答

1条回答 默认 最新

  • 码农阿豪@新空间代码工作室 Java领域优质创作者 2024-07-25 16:11
    关注
    让阿豪来帮你解答,本回答参考chatgpt3.5编写提供,如果还有疑问可以评论或留言
    问题分析: 根据错误信息,400错误表明请求中存在错误,具体是水平分辨率高于最佳匹配超过了10%的阈值。这通常是由于客户端配置的比例尺(分辨率)不正确导致的。在这种情况下,需要检查客户端传递的分辨率是否与服务端期望的分辨率匹配。 解决方案:
    1. 检查客户端传递的分辨率是否与服务端期望的分辨率匹配。
    2. 确保客户端使用的投影与服务端一致。
    3. 可以尝试调整客户端的分辨率参数,使其接近最佳匹配值。 案例分析: 根据提供的代码,可以看出在GetURL方法中进行了坐标转换,将经纬度坐标转换为3857投影坐标系的坐标。可能导致400错误的原因是在转换时,水平分辨率参数传递不正确,导致超过了最佳匹配的阈值。 代码建议:
    4. 在进行坐标转换时,检查水平分辨率参数是否正确传递。
    5. 确保转换后的坐标数据正确传递给geoserverUrlFormat。
    6. 调试时可以输出转换后的坐标数据,以确定是否符合预期。 在这种情况下,建议针对GetURL方法中的坐标转换部分进行详细调试和检查,确保传递的参数符合服务端期望的水平分辨率要求。
    评论

报告相同问题?

悬赏问题

  • ¥15 WPF动态创建页面内容
  • ¥15 如何对TBSS的结果进行统计学的分析已完成置换检验,如何在最终的TBSS输出结果提取除具体值及如何做进一步相关性分析
  • ¥15 SQL数据库操作问题
  • ¥100 关于lm339比较电路出现的问题
  • ¥15 Matlab安装yalmip和cplex功能安装失败
  • ¥15 加装宝马安卓中控改变开机画面
  • ¥15 STK安装问题问问大家,这种情况应该怎么办
  • ¥15 关于罗技鼠标宏lua文件的问题
  • ¥15 halcon ocr mlp 识别问题
  • ¥15 已知曲线满足正余弦函数,根据其峰值,还原出整条曲线