自从我从ol.3.9.0将我的应用程序升级到ol.3.12.1并实现了新的VectorTile Layer和Source后,我得到了一些正常但不好的渲染行为。问题是与瓷砖边框相交的标签被切断了。我看起来吃了源代码,但我发现没有可能设置一个选项,比如部分或重叠,就像在其他使用tile的library中一样(mapserver或者例如)。 有没有人知道一个变通方法?我查看了拉取请求,这似乎不是一个问题。附上截图。
FYI GeoJson的几何形状是点,问题是作为文本被删除的标签。
答案 0 :(得分:2)
使用ol.source.VectorTile几何图形时会在图块边框处剪切。矢量切片应该与buffer一起使用以避免渲染问题。
在您的情况下,您可能希望将ol.source.Vector与ol.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)。