[Tilecache] GetCapabilities document is not valid

Christopher Schmidt crschmidt at metacarta.com
Tue Mar 4 09:18:35 EST 2008


On Tue, Mar 04, 2008 at 10:01:33AM +0100, Holger Jaekel wrote:
> Hi everyone,
> 
> the capabilities document generated by TileCache is not valid. Look at
> the layers section of the document from
> http://schemas.opengeospatial.net/wms/1.1.1/WMS_MS_Capabilities.dtd
> 
> <Layer>
>   <Layer queryable="0" opaque="0" cascaded="1">
>     <Name>linktothepast</Name>
>     <Title>linktothepast</Title>
>     <SRS>EPSG:4326</SRS>
>     <BoundingBox srs="EPSG:4326" minx="0.000000" miny="0.000000"
>                           maxx="4096.000000" maxy="4096.000000" />
>   </Layer>
>   <Layer queryable="0" opaque="0" cascaded="1">
>     <Name>boston-freemap-remote-mapserver</Name>
>     <Title>boston-freemap-remote-mapserver</Title>
>     <SRS>EPSG:4326</SRS>
>     <BoundingBox srs="EPSG:4326" minx="-180.000000" miny="-90.000000"
>                           maxx="180.000000" maxy="90.000000" />
>   </Layer>
>   [ more layers... ]
> </Layer>
> 
> But the DTD says:
> 
> <!-- Nested list of zero or more map Layers offered by this server. -->
> <!ELEMENT Layer ( Name?, Title, Abstract?, KeywordList?, SRS*,
>                   LatLonBoundingBox?, BoundingBox*, Dimension*, Extent*,
>                   Attribution?, AuthorityURL*, Identifier*,
> MetadataURL*, DataURL*,
>                   FeatureListURL*, Style*, ScaleHint?, Layer* ) >
> 
> So the section must have this structure:

Okay, so I'm confused.

FIrst, I had a bunch of layers, with no external layer container. Then
stvn came to the list and said "You can't do that", so I added an extra
<layer> around the outside. That <Layer> doesn't have a name, title, or
anything else: It's just a container. There's no information to be added
there. 

> <Layer queryable="0" opaque="0" cascaded="1">
>   <Name>linktothepast</Name>
>   <Title>linktothepast</Title>
>   <SRS>EPSG:4326</SRS>
>   <BoundingBox SRS="EPSG:4326" minx="0.000000" miny="0.000000"
>                         maxx="4096.000000" maxy="4096.000000" />
>   <Layer queryable="0" opaque="0" cascaded="1">
>     <Name>boston-freemap-remote-mapserver</Name>
>     <Title>boston-freemap-remote-mapserver</Title>
>     <SRS>EPSG:4326</SRS>
>     <BoundingBox SRS="EPSG:4326" minx="-180.000000" miny="-90.000000"
>                           maxx="180.000000" maxy="90.000000" />
>   </Layer>

This isn't correct: that reads (to me) as if the boston freemap is a
sublayer of the zelda link to the past layer. But that's not true:
they're both children of the TileCache parent.

So, there's two possibilities here:
 1. WMS doesn't need the <Layer> container. This is possible: I was told
    it did, and I confirmed that other WMS servers used it.
 2. TileCache needs to create a bogus layer with a name, title, srs,
     boundingbox? That doesn't make sense to me. Which I think means the
     answer is 1. Which means I should have been more diligent in
     pushing back on stvn.

     

> The attribute "SRS" of "BoundingBox" must be written in upper case. The
> values for maxx and maxy look strange for me, but this may be a
> configuration problem.

'Problem' is a relative term. the Zelda layer powers
http://tilecache.org/demos/linktothepast.html , which is not quite
Geographic.

> I did not find a Jira for reporting bugs of TileCache, so I write it to
> the mailing list. I hope this is correct.
Yep, it is.

Regards,
-- 
Christopher Schmidt
MetaCarta



More information about the Tilecache mailing list