OL3 / Geoserver:矢量切片标签被裁剪

4
我正在尝试为矢量切片点要素打标签,但它们总是在切片边界处被裁剪。我已经尝试使用renderBuffer选项等多种方法,但都没有成功。 我正在使用OL 3.19,矢量切片由Geoserver 2.10RC1提供服务,在我的生产环境中以及编辑Boundless示例时都出现了相同的错误(http://suite.opengeo.org/docs/latest/dataadmin/vectortiles/index.html)。
我认为可能是Geoserver正确地提供了切片,而Openlayers在呈现之前对其进行了渲染和分割,但我在这方面有些困惑。
有什么建议吗? 如下图所示 代码片段如下:

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

  function simpleStyle(feature) {
    return style_simple;
  }
  
  var map = new ol.Map({
    target: 'map',
    view: new ol.View({
  center: [0,0],
  zoom: 4
    }),
    layers: [new ol.layer.VectorTile({
 renderBuffer:50, //doesn't matter
      style:simpleStyle,
      source: new ol.source.VectorTile({
        tilePixelRatio: 1,
        tileGrid: ol.tilegrid.createXYZ({maxZoom: 19}),
        format: new ol.format.MVT(),
        url: 'http://localhost:8080/geoserver/gwc/service/tms/1.0.0/testlayer@EPSG%3A3857@pbf/{z}/{x}/{-y}.pbf'
      })
    })]
  });
  </script>


renderBuffer 选项无法解决问题。如下面的答案所建议的那样,您的瓦片需要在相邻的瓦片上重复标签点。 - ahocevar
1个回答

3

我也遇到了ol.layer.VectorTile和文本标签的相同问题。
所有标签都在瓦片边界处切割。

输入图像描述
完整示例: https://jsfiddle.net/rn3qc4ca/

我向Openlayers开发者寻求帮助: https://github.com/openlayers/ol3/issues/6275
->这不是Openlayers的错误。 Mapbox瓦片确实会在邻近的瓦片中重复标记点。如果使用非常大的字体,标签仍将被裁切。


我的(未实现的)想法是将所有标签放入单独的ol.layer.Vector图层中。由于这种类型的图层不会分成瓦片,因此始终会完全打印出来。

这真的很奇怪,因为在OL3示例(http://openlayers.org/en/latest/examples/mapbox-vector-tiles-advanced.html)中,标签看起来非常好。 - JohnnyBrattom
那个示例中的Mapbox瓦片在相邻的瓦片上重复标签。这就是它们看起来很棒的原因。 - ahocevar

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接