我有一个MapCache < - > MapServer设置并运行。 MapCache配置为WMS访问,用于缓存我的MapServer提供的特定图层的图块。我可以访问WMS功能并通过我的浏览器显示一个磁贴,方法是通过MapCache访问WMS并验证它是否正在被缓存。
很棒,正是我想要的。
接下来,我设置了一个WorldWind客户端来访问MapCache WMS。 WorldWind抱怨rootlayer(MapCache用于包装所有图层的东西)不提供地理边界框。 WorldWind将此记录为严重并开始抛出异常。我试图找出问题所在。 WMS OGC标准是否要求顶层具有边界框,还是WorldWind客户端不符合WMS?以下是我看到的错误消息。下面是getCapabilities响应。下面是MapCache xml文件。下面是MapServer地图文件。
I have also posted this in the WorldWind forum, but not sure if I'll get a response there.
任何帮助将不胜感激。
例外:
SEVERE: No geographic bounding box given in WMS capabilities for layer rootlayer
SEVERE: No geographic bounding box given in WMS capabilities
SEVERE: WMS capabilities document is missing values necessary for component construction
UpdateSequence: none
ServiceName: OGC:WMS
ServiceTitle: map service
ServiceAbstract: none
Fees: none
AccessConstraints: none
Keywords: none
OnlineResource: href: [url]http://localhost/mapcache/?[/url], type: null
none
Max width = 0 Max height = 0
GetMap
Formats: image/jpeg, image/png,
DCPTypes:
HTTP, Get, href: [url]http://localhost/mapcache/?[/url], type: null
GetCapabilities
Formats: application/vnd.ogc.wms_xml,
DCPTypes:
HTTP, Get, href: [url]http://localhost/mapcache/?[/url], type: null
GetFeatureInfo
Formats: text/plain, application/vnd.ogc.gml,
DCPTypes:
HTTP, Get, href: [url]http://localhost/mapcache/?[/url], type: null
LAYERS
LAYER rootlayer: queryable = false
LAYER bluemarbleJanuary: queryable = false
gov.nasa.worldwind.exception.WWRuntimeException: No geographic bounding box given in WMS capabilities
at gov.nasa.worldwind.util.DataConfigurationUtils.getWMSLayerConfigParams(Unknown Source)
at gov.nasa.worldwind.wms.WMSTiledImageLayer.wmsGetParamsFromCapsDoc(Unknown Source)
at gov.nasa.worldwind.wms.WMSTiledImageLayer.<init>(Unknown Source)
at gov.nasa.worldwind.layers.BasicLayerFactory.doCreateFromCapabilities(Unknown Source)
at gov.nasa.worldwind.layers.BasicLayerFactory.doCreateFromCapabilities(Unknown Source)
at gov.nasa.worldwind.BasicFactory.createFromConfigSource(Unknown Source)
at gov.nasa.worldwind.layers.BasicLayerFactory.createFromConfigSource(Unknown Source)
gov.nasa.worldwind.exception.WWRuntimeException: Creation from configuration file failed Version: 1.1.1
at gov.nasa.worldwind.BasicFactory.createFromConfigSource(Unknown Source)
at gov.nasa.worldwind.layers.BasicLayerFactory.createFromConfigSource(Unknown Source)
Caused by: java.lang.IllegalArgumentException: WMS capabilities document is missing values necessary for component construction
at gov.nasa.worldwind.wms.WMSTiledImageLayer.wmsGetParamsFromCapsDoc(Unknown Source)
at gov.nasa.worldwind.wms.WMSTiledImageLayer.<init>(Unknown Source)
at gov.nasa.worldwind.layers.BasicLayerFactory.doCreateFromCapabilities(Unknown Source)
at gov.nasa.worldwind.layers.BasicLayerFactory.doCreateFromCapabilities(Unknown Source)
... 14 more
Caused by: gov.nasa.worldwind.exception.WWRuntimeException: No geographic bounding box given in WMS capabilities
at gov.nasa.worldwind.util.DataConfigurationUtils.getWMSLayerConfigParams(Unknown Source)
... 18 more
获得性能
<WMT_MS_Capabilities version="1.1.1">
<Service>
<Name>OGC:WMS</Name>
<Title>map service</Title>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/mapcache?"/>
</Service>
<Capability>
<Request>
<GetCapabilities>
<Format>application/vnd.ogc.wms_xml</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/mapcache?"/>
</Get>
</HTTP>
</DCPType>
</GetCapabilities>
<GetMap>
<Format>image/png</Format>
<Format>image/jpeg</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/mapcache?"/>
</Get>
</HTTP>
</DCPType>
</GetMap>
<GetFeatureInfo>
<Format>text/plain</Format>
<Format>application/vnd.ogc.gml</Format>
<DCPType>
<HTTP>
<Get>
<OnlineResource xmlns:xlink="http://www.w3.org/1999/xlink" xlink:href="http://localhost/mapcache?"/>
</Get>
</HTTP>
</DCPType>
</GetFeatureInfo>
</Request>
<Exceptions>
<Format>text/plain</Format>
</Exceptions>
<VendorSpecificCapabilities>
<TileSet>
<SRS>EPSG:4326</SRS>
<BoundingBox SRS="EPSG:4326" minx="-180.000000" miny="-90.000000" maxx="180.000000" maxy="90.000000"/>
<Resolutions>
0.70312500000000000000 0.35156250000000000000 0.17578125000000000000 0.08789062500000000000 0.04394531250000000000 0.02197265625000000000 0.01098632812500000000 0.00549316406250000000 0.00274658203125000000 0.00137329101562500000 0.00068664550781250000 0.00034332275390625000 0.00017166137695312500 0.00008583068847656250 0.00004291534423828120 0.00002145767211914060 0.00001072883605957030 0.00000536441802978516
</Resolutions>
<Width>256</Width>
<Height>256</Height>
<Format>image/png</Format>
<Layers>bluemarbleJanuary</Layers>
<Styles/>
</TileSet>
</VendorSpecificCapabilities>
<Layer>
<Name>rootlayer</Name>
<Title>map service</Title>
<SRS>EPSG:900913</SRS>
<SRS>EPSG:4326</SRS>
<SRS>EPSG:3857</SRS>
<Layer cascaded="1" queryable="0">
<Name>bluemarbleJanuary</Name>
<LatLonBoundingBox minx="-180.000000" miny="-90.000000" maxx="180.000000" maxy="90.000000"/>
<BoundingBox SRS="EPSG:4326" minx="-180.000000" miny="-90.000000" maxx="180.000000" maxy="90.000000"/>
<SRS>EPSG:4326</SRS>
</Layer>
</Layer>
</Capability>
</WMT_MS_Capabilities>
mapcache.xml
<?xml version="1.0" encoding="UTF-8"?>
<!-- see the accompanying mapcache.xml.sample for a fully commented configuration file -->
<mapcache>
<metadata>
<title>map service</title>
<abstract>Contains various cached maps</abstract>
</metadata>
<cache name="disk" type="disk">
<base>D:/mapserver/ms4w/tmp/ms_tmp/cache</base>
</cache>
<source name="bluemarbleJanuary" type="wms">
<getmap>
<params>
<FORMAT>image/png</FORMAT>
<LAYERS>bluemarbleJanuary</LAYERS>
<MAP>D:/mapserver/data/nasaww.map</MAP>
</params>
</getmap>
<http>
<url>http://localhost/wms?</url>
</http>
</source>
<format name="PNGQ_FAST" type="PNG">
<compression>fast</compression>
<colors>256</colors>
</format>
<tileset name="bluemarbleJanuary">
<source>bluemarbleJanuary</source>
<cache>disk</cache>
<grid>WGS84</grid>
<format>PNGQ_FAST</format>
<metatile>5 5</metatile>
<metabuffer>20</metabuffer>
<expires>3600</expires>
</tileset>
<default_format>PNGQ_FAST</default_format>
<service type="wms" enabled="true">
<full_wms>assemble</full_wms>
<resample_mode>bilinear</resample_mode>
<format>PNGQ_FAST</format>
<maxsize>4096</maxsize>
</service>
<service type="wmts" enabled="true"/>
<service type="tms" enabled="true"/>
<service type="kml" enabled="true"/>
<service type="gmaps" enabled="true"/>
<service type="ve" enabled="true"/>
<service type="demo" enabled="true"/>
<errors>report</errors>
<lock_dir>D:/mapserver/ms4w/tmp/ms_tmp</lock_dir>
<log_level>debug</log_level>
</mapcache>
地图文件
MAP
NAME WMS_server
STATUS ON
EXTENT -180 -90 180 90
UNITS DD
CONFIG "MS_ERRORFILE" "ms_error.txt"
DEBUG 5
#
# Start of web interface definition
#
WEB
METADATA
"wms_title" "WMS Demo Server"
"wms_onlineresource" "http://localhost/wms?"
"wms_srs" "EPSG:4326"
"wms_feature_info_mime_type" "text/html"
"wms_abstract" "This demonstration server showcases MapServer (www.mapserver.org) and its OGC support"
"wms_enable_request" "*"
END # Metadata
END # Web
PROJECTION
"init=epsg:4326"
END # Projection
#
# Start of layer definitions
#
##################
# Blue Marble January 2004
##################
LAYER
NAME "bluemarbleJanuary"
#GROUP "default"
TYPE RASTER
STATUS ON
METADATA
"wms_title" "Blue Marble Raster (January 2004)"
"wms_attribution_title" "NASA Blue Marble (January 2004)"
"wms_srs" "EPSG:4326"
END # Metadata
TILEINDEX "raster/bluemarble/jan/bluemarble-index.shp"
TILEITEM "LOCATION"
PROJECTION
"+init=EPSG:4326"
END # Projection
END # Layer
END # Map
我知道你提到问题在于mapcache,但你需要确保mapserver提供信息,以防mapcache在转发时将其作为getcapabilities请求的一部分进行转发。
您可能还希望将此查询发布到mapserver用户或dev邮件列表,因为mapcache的开发人员会监视它们。
从mapserver文档:
wms_bbox_extended:
Description: (Optional) “true” or “false”. If true, bounding boxes are reported for all supported SRS / CRS in the capabilities document. If false, only the bounding box of the first SRS / CRS is reported.
Introduced in 6.0.
wms_extent
WMS TAG Name: BoundingBox (WMS1.1.1, sect. 6.5.6)
Description: (Optional) Used for the layer’s BoundingBox tag for cases where it is impossible (or very inefficient) for MapServer to probe the data source to figure its extents. The value for this metadata is “minx miny maxx maxy” separated by spaces, with the values in the layer’s projection units. If wms_extent is provided then it has priority and MapServer will NOT try to read the source file’s extents.
For Rasters served through WMS, MapServer can now use the wms_extent metadata parameter to register the image. If a .wld file cannot be found, MapServer will then look for the wms_extent metadata parameter and use the extents of the image and the size of the image for georegistration.