OpenLayers 3-在地图上显示文本,相对于缩放的文本大小

Yoa*_*n B 3 javascript openlayers-3

我目前正在使用OL3,并试图在地图上显示文本。没问题,我正在使用ol.style的text属性显示它。

我的问题如下:此文本始终具有相同的大小。即:如果我要最大缩放或最大缩放,则它在屏幕上的大小仍然相同。我希望它在缩放时增大,在不缩放时缩小,以保持文本相对于地面的大小。

我在下图中绘制了预期的结果: 预期的结果

有人有主意吗?也许不使用ol.style文本?

Jon*_*ker 5

要走的路是样式功能。参见演示小提琴

var style = function () {
  var zoom = map.getView().getZoom();
  var font_size = zoom * 10; // arbitrary value

  return [
    new ol.style.Style({
      text: new ol.style.Text({
        font: font_size + 'px Calibri,sans-serif',
        fill: new ol.style.Fill({ color: '#000' }),
        stroke: new ol.style.Stroke({
          color: '#fff', width: 2
        }),
        text: 'Some text!'
      })
    })
  ];
};
Run Code Online (Sandbox Code Playgroud)