3

公開された ArcGIS マップ サービスから WMS レイヤーを表示しようとしていますが、取得できるのはピンクのタイルだけです。私のコードの何が問題なのか、誰かが私を修正するのを手伝ってくれますか? 米国にパンすると、「壊れた画像のピンクのタイル」しか表示されません... WMSレイヤーがまったく表示されません。

<html>
<head>
    <title>Karta</title>
    <link rel="stylesheet" href="openlayers/theme/default/style.css" type="text/css">
<script src="http://openlayers.org/api/OpenLayers.js"></script>
<script  type="text/javascript">
    function inicializacija(){
        var options = {
            projection: new OpenLayers.Projection("EPSG:4326"),
            units: "m",
            numZoomLevels: 18,
            maxResolution: 156543.0339,
            maxExtent: new OpenLayers.Bounds(-20037508.34,-20037508.34,20037508.34,20037508.34)
            };
         var map = new OpenLayers.Map("map-id", options);
         //var osm = new OpenLayers.Layer.OSM("Open Street Map");
         //var wms = new OpenLayers.Layer.MapServer( "World Map", "http://localhost/cgi-bin/mapserv.exe", {layers: 'countries',map: '/ms4w/Apache/htdocs/MapFile06_wms.map', srs: 'EPSG:4326'} );

        //map.addLayers([osm,wms]);

        layer = new OpenLayers.Layer.WMS( "OpenLayers WMS",
            "http://sampleserver1.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer?request=GetCapabilities&service=WMS", {layers: "States"} );
        map.addLayer(layer);

        map.addControl(new OpenLayers.Control.LayerSwitcher());
        map.addControl(new OpenLayers.Control.MousePosition());


        map.zoomToExtent(new OpenLayers.Bounds(1490000, 5600000,1850000, 5900000));
    }
</script>
    <style>
        #map-id {
            width: 100%;
            height: 100%;
        }
    </style>
</head>
<body onload= 'inicializacija()'>
    <h1>Primer prekrivanja slojev in izbire podlag</h1>
    <div id="map-id"></div>
</body>
</html>
4

1 に答える 1

7

リクエストが有効なマップ イメージにならなかったため、イメージは赤色で表示されます。

このような問題をデバッグする方法は次のとおりです。

  • ページを FireFox または Chrome で開きます。
  • 次に、赤のイメージの 1 つをディスクに保存します。
  • 保存したファイルをテキスト エディターで開きます。

現在、画像を要求していないように見えますが、サーバーの機能を要求しています。

サーバーの URL をコードに貼り付けた可能性がありますが、サーバーの機能とサポート内容を要求する URL を貼り付けました。

したがって、URL から次の部分を削除するだけです。 request=GetCapabilities

次のようになります。http://sampleserver1.arcgisonline.com/ArcGIS/services/Specialty/ESRI_StatesCitiesRivers_USA/MapServer/WMSServer?service=WMS

HTML を保存して更新します。

わかりました、実際に画像をリクエストしていますが、まだ何も取得していません.

だから、同じことをしてください。赤い画像の 1 つを保存し、中身を確認します。

今回は内部にエラーメッセージがあります:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE ServiceExceptionReport SYSTEM "http://schemas.opengis.net/wms/1.1.1/exception_1_1_1.dtd">
<ServiceExceptionReport version="1.1.1">
  <ServiceException code="LayerNotDefined">
Parameter 'layer(s)' contains unacceptable value: States
  </ServiceException>
</ServiceExceptionReport>

というレイヤをリクエストしているようですStatesが、そのレイヤは存在しません。

有効なレイヤーを提供するだけで完了です。サーバーには「1」と「2」という 2 つのレイヤーがあるようです。それをレイヤーとして設定すると、赤い画像は消えますが、興味深いものは何も含まれていないようですが、これは、さらに情報を入手しない限り、私があなたを助けることができない別の問題です.

于 2013-01-08T03:42:53.907 に答える