Without setting up a proxy to handle SPIDAcalc's non-compliant map tile requests, there is no way to correctly align overlays with SPIDAcalc's default basemap options.
Current Functionality:
When requesting map tiles, SPIDAcalc always formats the BBOX values as decimal degrees, regardless of the CRS. However, section 7.3.3.6 BBOX of the WMS 1.3 specification (https://docs.ogc.org/is/06-042/06-042.pdf) requires that the "units, ordering and direction of increment of the x and y axes are as defined by the Layer CRS". Geospatial data servers that expect WMS 1.3 compliant calls will respond incorrectly to SPIDAcalc's requests for a service using EPSG:3857 because the service expects to receive the bounding box extents in meters, not in degrees. This is an issue because SPIDAcalc's default basemaps all use EPSG:3857, so overlays must be in EPSG:3857 to correctly align. The only option to serve overlays to SPIDAcalc that will align with the default basemaps is to put a proxy in front of the map server that can convert the non-compliant requests into compliant requests.
Requested Functionality:
Automatically format requests to a WMS 1.3 service with WMS 1.3 compliant BBOX arguments based on the service's advertised CRS.
Allow manually defining CRS and BBOX units in the map.groovy configuration.