自新的ol-version(3.12.1)和VectorTile层以来,矢量标签得到了切割

时间:2016-01-11 10:41:48

标签: openlayers-3

自从我从ol.3.9.0将我的应用程序升级到ol.3.12.1并实现了新的VectorTile Layer和Source后,我得到了一些正常但不好的渲染行为。问题是与瓷砖边框相交的标签被切断了。我看起来吃了源代码,但我发现没有可能设置一个选项,比如部分或重叠,就像在其他使用tile的library中一样(mapserver或者例如)。 有没有人知道一个变通方法?我查看了拉取请求,这似乎不是一个问题。附上截图。

FYI GeoJson的几何形状是点,问题是作为文本被删除的标签。

enter image description here

1 个答案:

答案 0 :(得分:2)

使用ol.source.VectorTile几何图形时会在图块边框处剪切。矢量切片应该与buffer一起使用以避免渲染问题。

在您的情况下,您可能希望将ol.source.Vectorol.loadingstrategy.tile一起用作加载策略。

这是一个例子: http://openlayers.org/en/master/examples/vector-osm.html

  var vectorSource = new ol.source.Vector({
    format: new ol.format.GeoJSON(),
    url: function(extent, resolution, projection) {
      var epsg4326Extent =
          ol.proj.transformExtent(extent, projection, 'EPSG:4326');
      return 'http://your-webservice?bbox=' +
          epsg4326Extent.join(',');
    },
    strategy: ol.loadingstrategy.tile(ol.tilegrid.createXYZ({
      maxZoom: 19
    }));

确保您的GeoJSON功能具有正确的标识符集,以便功能不会在源中插入两次(请参阅GeoJSON: Feature Objects)。