OpenLayers 3 - 在地图上显示文本,文本大小相对于缩放
OpenLayers 3 - Display text on map, text size relative to zoom
我目前正在开发 OL3 并尝试在我的地图上显示文本。没问题,我正在使用 ol.style 的文本 属性 来显示它。
我的问题如下:此文本的大小始终相同。即:如果我正在取消最大缩放或最大缩放,它在屏幕上的大小仍然相同。我希望它在缩放时变大,在取消缩放时缩小以保持文本相对于地面的大小。
我把预期的结果画成了下图:
Expected result
有人有想法吗?也许不使用 ol.style 文本?
要走的路是a style function. See demo fiddle。
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!'
})
})
];
};
我目前正在开发 OL3 并尝试在我的地图上显示文本。没问题,我正在使用 ol.style 的文本 属性 来显示它。
我的问题如下:此文本的大小始终相同。即:如果我正在取消最大缩放或最大缩放,它在屏幕上的大小仍然相同。我希望它在缩放时变大,在取消缩放时缩小以保持文本相对于地面的大小。
我把预期的结果画成了下图: Expected result
有人有想法吗?也许不使用 ol.style 文本?
要走的路是a style function. See demo fiddle。
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!'
})
})
];
};