0

geoserver をインストールしたばかりですが、うまく動作しません。インストール時に提供される例、特にtiger:tiger_roads. タイルを取得できますが、マップを移動する404と、Chrome コンソールにエラーがスローされ、次の応答が返されます。

Coverage [minx,miny,maxx,maxy] is [2411, 5111, 2414, 5116, 13], index [x,y,z] is [2410, 5113, 13]

その境界内に表示するものがないため、geoserver が 204 (データなしで OK) を返すことを期待していました。

それは正常な動作ですか?そうでない場合、そのエラーを防ぐために何を設定する必要がありますか?

これはindex.html、問題を再現できる完全な場所です。それを開いて、マップに沿って移動するか、ズームを変更するだけです。

<html>
<head>
  <title>Vector tiles</title>
  <script src="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.1.1/build/ol.js"></script>
  <link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/openlayers/openlayers.github.io@master/en/v6.1.1/css/ol.css" type="text/css">
  <style>
    html, body {
      font-family: sans-serif;
      width: 100%;
    }
    .map {
      height: 500px;
      width: 100%;
    }
  </style>
</head>
<body>
  <h3>Mapbox Protobuf - vector tiles</h3>
  <div id="map" class="map"></div>
  <script>

  var style_simple = new ol.style.Style({
    fill: new ol.style.Fill({
      color: '#ADD8E6'
    }),
    stroke: new ol.style.Stroke({
      color: '#880000',
      width: 1
    })
  });

  function simpleStyle(feature) {
    return style_simple;
  }

  var layer = 'tiger:tiger_roads';
  var projection_epsg_no = '900913';
  var map = new ol.Map({
    target: 'map',
    view: new ol.View({
      center: ol.proj.fromLonLat([-73.985130, 40.758896]),
      zoom: 13
    }),
    layers: [new ol.layer.VectorTile({
      style:simpleStyle,
      source: new ol.source.VectorTile({
        tilePixelRatio: 1, // oversampling when > 1
        tileGrid: ol.tilegrid.createXYZ({maxZoom: 19}),
        format: new ol.format.MVT(),
        url: 'http://ec2-34-242-255-134.eu-west-1.compute.amazonaws.com:8080/geoserver/gwc/service/tms/1.0.0/' + layer +
            '@EPSG%3A'+projection_epsg_no+'@pbf/{z}/{x}/{-y}.pbf'
      })
    })]
  });
  </script>
</body>
</html>
4

1 に答える 1

1

TMS 仕様では、クライアントが存在しないタイルを要求したときに 404 応答が返されることが明確になっています。

エラー処理 サーバーでエラーが発生した場合、クライアントがエラーが発生したことを簡単に認識でき、エラーが発生した理由を確認して、必要に応じてユーザーに通知できるようにすることが重要です。

タイル マップ サーバーは、HTTP エラー コードを使用してエラー状態の一般的な理由を中継し、XML ペイロードを使用して人間が読める言語で失敗の具体的な理由を伝えます。

この仕様で指定された HTTP エラー コードのみを使用して、クライアントにエラーを返す必要があります。

  • クライアントが存在しないリソース URL を要求しています。HTTP エラー コード 404 (見つかりません) を返す

  • サーバーは、有効なリソース URL に対する応答の処理に失敗しました。HTTP エラー コード 500 (内部サーバー エラー) を返す

于 2019-11-29T08:22:38.087 に答える