Javascript 显示线要素的多个标签时,在OpenLayers6中使用分离功能

Javascript 显示线要素的多个标签时,在OpenLayers6中使用分离功能,javascript,openlayers,openlayers-6,Javascript,Openlayers,Openlayers 6,目标: 我正在尝试使用OpenLayers 6.2为一条线显示两个标签(一个在线上方,一个在线下方),同时启用分离功能。 目标状态的图片,分离打开。 问题: 当关闭“清除”时,我可以实现我的目标,但当打开“清除”时,它将关闭行下的文本 背景: 请参考随附的CodeSandbox(index.js文件)(或下面的代码片段)——我在这里设置了一个当前javascript的示例 在第19行和第30行,如果数字分别更改为-23或24(或更接近该行的任何数字),您将注意到,如果第64行的Decluter

目标:

我正在尝试使用OpenLayers 6.2为一条线显示两个标签(一个在线上方,一个在线下方),同时启用分离功能。 目标状态的图片,分离打开。

问题:

当关闭“清除”时,我可以实现我的目标,但当打开“清除”时,它将关闭行下的文本

背景:

请参考随附的CodeSandbox(index.js文件)(或下面的代码片段)——我在这里设置了一个当前javascript的示例 在第19行和第30行,如果数字分别更改为-23或24(或更接近该行的任何数字),您将注意到,如果第64行的Declutering设置为true,则底部标签将关闭

feature.setStyle([
新风格({
笔划:新笔划({
颜色:“蓝色”,
宽度:3
}),
文本:新文本({
文本:“文本1 Lorem Ipsum”,
位置:“行”,
text基线:“中间”,
副职:-24,
填充:[-10,-10,-10,-10],
笔划:新笔划({color:“red”}),
背景笔画:新笔画({color:“red”})
})
}),
新风格({
文本:新文本({
文本:“文本2 Lorem Ipsum”,
位置:“行”,
text基线:“中间”,
副职:25,
填充:[-10,-10,-10,-10],
笔划:新笔划({color:“blue”}),
背景笔划:新笔划({color:“blue”})
})
})
])

我认为你无法做到这一点。如果不禁用“分离”,则当标签画布边界框相交时,将仅渲染最顶部。我想,这就是为什么当你试图接近两者时,其中一个标签会消失的原因。在您的场景中,您只能使用文本大小和偏移量。@cabesuon这是否意味着无法自定义分离功能?您可以使用单个文本样式,将标签用换行符分隔,但这会将您限制为一种颜色,并且标签显示在中心点的左侧。@nstillwell老实说,我没有这个答案,我在公园里找不到这样的东西API@Mike这是一个很好的选择,你应该把它作为一个(选择)答案发布