在传单中获取 WMS 的最小缩放级别

Get min zoomlevel of WMS in leaflet

我正在我的应用程序中实施多个外部 WMS 服务。遗憾的是,这些 WMS 服务不传递有关图块最小缩放级别的信息,仅传递有关 WMS 图层扩展的信息。有没有办法确定 WMS 开始显示的最小缩放级别?

unfortunately, these WMS Services do not pass on information on the minimum zoom level of the tiles

...因为 WMS 不了解图块的概念,而是使用任意边界框。这些服务 可能 包含有关 MinScaleDenominatorMaxScaleDenominator 的信息(请参阅 WMS 1.3.0 specification document,第 27 页,第 7.2.4.6.9 节)。

不过有一些注意事项:

  • Leaflet 不会 查询或解析 WMS GetCapabilities 文档,因此它不会获取有关 MinScaleDenominatorMaxScaleDenominator 的信息。
  • WMS 方面的比例是无单位比例(因为它们假设 1px = 0.28mm)。在 Leaflet 中,scale of the map's CRS 是每 360 度经度的像素(当使用默认 L.CRS.EPSG3857 时)。

这是可能的,但它需要 WMS 服务公开正确的数据,并且需要您处理 GetCapabilities 文档并对比例因子执行一些数学运算。