Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Text labels overlap #6

Open
ytl1446109935 opened this issue Oct 11, 2022 · 4 comments
Open

Text labels overlap #6

ytl1446109935 opened this issue Oct 11, 2022 · 4 comments

Comments

@ytl1446109935
Copy link

大佬,我发现矢量切片的文字标签有时候会有重叠的现象,这种情况有办法改进吗?
cesium:
image
mapbox:
image

@hongfaqiu
Copy link
Owner

在切成瓦片的时候,多边形会被切割成许多部分。symbol-placement默认为‘point’,mapbox会为每一个多边形的切片都绘制一个标签,即使它们是同一个多边形。
这里的一个issue提到了这个问题Duplicate text label placement with vector tiles
另外由于MVTImageryProvider用到的渲染器是在固定层级渲染单张瓦片并拼接的,并不会统一计算标签碰撞,所以很难从程序上解决这个问题。
一个可行的方案是创建为每个多边形创建质心点,渲染标签时使用点,而不是多边形

@ytl1446109935
Copy link
Author

在切成瓦片的时候,多边形会被切割成许多部分。symbol-placement默认为‘point’,mapbox会为每一个多边形的切片都绘制一个标签,即使它们是同一个多边形。 这里的一个issue提到了这个问题Duplicate text label placement with vector tiles。 另外由于MVTImageryProvider用到的渲染器是在固定层级渲染单张瓦片并拼接的,并不会统一计算标签碰撞,所以很难从程序上解决这个问题。 一个可行的方案是创建为每个多边形创建质心点,渲染标签时使用点,而不是多边形

了解,感谢大佬

@ytl1446109935
Copy link
Author

我对比了当前版本的代码,发现标签碰撞处理在symbol_sdf.fragment.glsl中,由fade_opacity参数控制。fade_opacity是在symbol_sdf.vertex.glsl由a_fade_opacity计算得到的。我尝试将当前版本的着色器迁移到老版本中,遇到了一些问题,感觉就差临门一脚了。想再请教一下。
这是迁移之后的报警(a_fade_opacity无法参与计算):
F{~)`$LLIA_BBT_R FH)NE3

@xzg5101
Copy link

xzg5101 commented Jun 20, 2023

我对比了当前版本的代码,发现标签碰撞处理在symbol_sdf.fragment.glsl中,由fade_opacity参数控制。fade_opacity是在symbol_sdf.vertex.glsl由a_fade_opacity计算得到的。我尝试将当前版本的着色器迁移到老版本中,遇到了一些问题,感觉就差临门一脚了。想再请教一下。 这是迁移之后的报警(a_fade_opacity无法参与计算): F{~)`$LLIA_BBT_R FH)NE3

想请教一下您最后解决这个问题了吗?我现在遇到的情况非常类似。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants