Skip to content

处理 WMS 请求

问题来源

在请求影像数据/3dtiles数据/地形数据时, 服务器文件中心对于访问文件的请求需要加token,能否在全局编辑以上请求的 url, 比如说原始请求为:

http://data1.mars3d.cn/terrain/7/204/89.terrain

期望能编辑为:

${window.origin}/terrain/7/204/89.terrain&access_token="string"
// 或
${window.origin}/api/files?fileName="string"

解决方案 - 火星科技/木遥

js
// 处理wms请求
Cesium.Resource.ReplaceUrl = function (url) {
  if (this._url.startsWith("//server.kaka.cn/geoserver/mars/wms")) {
    return url.replaceAll("string_src", "string_dest");
  } else {
    return url;
  }
};

ceisum在发送不同请求时对Url的处理不同,需要区分处理。

解决方案 - April 10,2024

js
const proxy = new Cesium.DefaultProxy("");
proxy.getURL = (url: string) => {
  if (url.includes("/string_src")) {
      return url.replaceAll("string_src", "string_dest");
    }
  }
  return url;
};
const m_url = modelUrl;
const bimOptions = {
  name: '3dtiles_model',
  url: new Cesium.Resource({
    url: m_url,
    proxy
  }),
}