zoukankan      html  css  js  c++  java
  • Cesium 4490 解决方案

    今天同事反馈我们的系统加载不了国家20004490)的WMTS服务,刚改完的功能,用别的地方的数据可以,新提供的数据却不行,经过调试,发现确实不行。

    然后也在百度上找了一下Cesium 4490 ,主要参考解决思路有下面这两个

    https://blog.csdn.net/chenguizhenaza/article/details/112003278

    https://blog.csdn.net/A873054267/article/details/86652620

    这两篇文章,并没有解决问题,可以肯定的是代码并没有问题,因为有4490的数据可以加载,网上也有其他人成功加载过,那问题肯定出在数据上。

    整理了一下思路

    1、核实数据坐标系,加载成功过的数据和加载不成功的数据坐标系都是4490,

    2、向同事要了加载不成功服务的切片方案(2000.xml)和加载成功的服务的切片方案(Conf2000天地图切片方案(5-16).xml),通过比较发现

     

    2000.xml 2000天地图切片方案(5-16).xml 区别在于200021级切片,2000天地图只有20级切片,2000的切片方案第0级是多出来的一级,其他级别与2000天地图一致。

    3、找了网上公开互联网的天地图切片方案,发现与2000天地图切片方案除了原点不一致,其他都一致

     

    会不会是级别导致的问题呢?

    4、查看系统请求图片的错误

     

    如果是级别问题,那么请求的时候如果级别+1,会不会返回成功呢?

    神奇的是竟然返回成功图片了,随机测试了几个无法返回图片的请求,在Level+1情况下,都返回了图片

    5、验证整个服务,既然是级别问题,那如果我在服务器上直接修改切片的文件夹级别(可以看下ArcGISServer 切片规则,知道原由),把每个级别都减少1,比如L17改为L16

    请求成功了

     

    解决方案

    1、修改Cesium 源码WebMapTileServiceImageryProvider,判断WMTS服务的切片级别,请求数据时调整级别,这个方案比较麻烦,对源码的理解要比较深入,才能修改,暂时没用这种方式

    2、修改数据

    1)重新发布数据,用2000天地图的切片方案重新切片

    2)如果客户已经用2000的切片方案切好的服务,那可以重新发布一个服务,选择2000的切片方案,但是不生成切片(生成切片会比较长的时间,对客户来说也解释不了,客户只会认为你的系统支持不了2000坐标系的数据),把原来已经切好的切片目录拷贝到新服务的切片目录下,并把这些切片目录的名称级别都减少1,如果L21改为L20

     

    加载代码:

     

    其他问题

    互联网2000的切片方案,原点是400-400,似乎也加载不了,有数据的时候可以测试下

  • 相关阅读:
    函数输出参数 双重指针
    NotePad++ 支持日语字体
    C++ 前置操作符与后置操作符
    用js判断 iPhone6 iPhone6 plus iphonex?
    从浏览器输入一个地址到渲染出网页这个过程发生了什么???
    对.Net 垃圾回收Finalize 和Dispose的理解
    在.NET环境中使用单元测试工具NUnit
    信道
    asp.net 获取当前URL的正确方法
    ASP.NET中常用输出JS脚本的类
  • 原文地址:https://www.cnblogs.com/study3d/p/15012219.html
Copyright © 2011-2022 走看看