边界框中没有 CRS 的 GeoTools getCapabilities

GeoTools getCapabilities with no CRS in boundingbox

我正在尝试从 MapServer 检索功能:

    URL url = null;
    try {
      url = new URL( sourceUrl );
    } catch (MalformedURLException e) {
      //will not happen
    }

    WebMapServer wms = null;
    try {
      wms = new WebMapServer(url);

      WMSCapabilities capabilities = wms.getCapabilities();

      String serverName = capabilities.getService().getName();
      String serverTitle = capabilities.getService().getTitle();
      System.out.println("Capabilities retrieved from server: " + serverName + " (" + serverTitle + ")");         


    } catch (Exception e) {
        e.printStackTrace();
    }   

但是我收到这个错误:

Caused by: org.xml.sax.SAXException: Bounding Box element contains no CRS/SRS attribute
    at org.geotools.ows.wms.xml.WMSComplexTypes$_BoundingBoxType.getValue(WMSComplexTypes.java:3241)
    at org.geotools.xml.handlers.ComplexElementHandler.endElement(ComplexElementHandler.java:140)
    at org.geotools.xml.XMLSAXHandler.endElement(XMLSAXHandler.java:252)
    ... 87 more

能力XML是这样的(重要部分):

如我所见,边界框确实没有 CRS,但我对此无能为力,因为它不是我的服务器。

我该如何继续?

您需要提交一份 bug report with the MapServer teamCRS 是必需元素,您不能将其留空并期望使边界框有意义。在理想的世界中,GeoTools 可以求助于 Ex_GeographicBoundingBox 但这也无济于事。

也值得联系服务器的所有者并要求他们修复该层的配置。