1

MapCache <-> MapServer をセットアップして実行しています。MapCache は WMS アクセス用に構成されており、MapServer によって提供される特定のレイヤーのタイルをキャッシュするために使用されます。MapCache 経由で WMS にアクセスすることで、ブラウザから WMS 機能にアクセスしてタイルを表示でき、タイルがキャッシュされていることを確認しました。

素晴らしい、まさに私が欲しかったもの。

次に、WorldWind クライアントをセットアップして MapCache WMS にアクセスします。WorldWind は、rootlayer (MapCache がすべてのレイヤーをラップするために使用するもの) が地理的な境界ボックスを提供していないと不満を漏らしています。WorldWind はこれを重大としてログに記録し、例外のスローを開始します。問題がどこにあるのかを理解しようとしています。WMS OGC 標準では、最上層にバウンディング ボックスが必要ですか、それとも WorldWind クライアントは WMS に準拠していませんか? 以下は、私が見ているエラーメッセージです。その下には getCapabilities レスポンスがあります。その下には MapCache xml ファイルがあります。その下には MapServer マップ ファイルがあります。

これは WorldWind フォーラムにも投稿しましたが、そこで回答が得られるかどうかはわかりません。

どんな助けでも大歓迎です。

例外:

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

GetCapabilities

<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
4

1 に答える 1

0

問題は mapcache にあるとおっしゃっていましたが、mapcache が getcapabilities リクエストの一部として転送する情報を探している場合に備えて、mapserver が情報を提供していることを確認する必要があります。

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.
于 2014-12-18T00:50:40.053 に答える