箭头函数返回值书写错误导致的bug

​ 首先,_plotPolygons 方法中的 polygon-label 类的文本位置是根据 _zx 和 _zy 这两个缩放后的比例尺计算得到的。这意味着如果这些比例尺没有正确更新或者在缩放时没有被正确使用,那么标签的位置就会出错。

在 zoomed 函数中,你可以看到对于诸如 circle, .linestring-path, .polygon-path 的缩放处理是通过更新属性 cx, cy, d 来实现的。但是对于 text.polygon-label 的处理,似乎有些不一致:

js 复制代码
.attr('x', (d) => {zx(d.data[0] ? d.data[0] : d[0])})
.attr('y', (d) => {zy(d.data[1] ? d.data[1] : d[1])});

在上述代码中,x 和 y 属性的设置函数中使用了 {} 而不是直接返回计算结果,这将导致函数没有实际返回任何值,因此 x 和 y 属性并未被正确设置。

正确的写法应该直接返回计算结果,例如:

js 复制代码
.attr('x', (d) => zx(d.data[0] ? d.data[0] : d[0]))
.attr('y', (d) => zy(d.data[1] ? d.data[1] : d[1]));

同时,请确保 d.data[0] 和 d.data[1] 正确指向了标签应该位于的坐标点。假设 d.data 是一个包含两个元素的数组,其中第一个元素是 x 坐标,第二个元素是 y 坐标。

最后,确保 _zx 和 _zy 在 zoomed 函数调用之前已经正确地被更新。如果这些比例尺在缩放事件发生时没有更新,那么标签的位置也会出错。

总结一下,解决位置错误的问题可能需要以下几个步骤:

  1. 确保在 zoomed 函数中正确更新 polygon-label 的 x 和 y 属性。
  2. 检查 d.data 是否正确地代表了标签的坐标。
  3. 确保 _zx 和 _zy 在缩放事件发生时被正确更新。
相关推荐
涛涛ing1 分钟前
那个PR太干净了,干净到我差点直接点了合并
前端
去伪存真3 分钟前
稠密检索负责脑补,稀疏检索负责兜底:拆解 RAG 倒排索引的“查字典”艺术
前端·agent
喵个咪1 小时前
GoWind 拆解:全链 ID 类型体系——int64 定版与前端字符串化契约
前端·后端·go
喵个咪1 小时前
GoWind CMS 拆解:Flutter 设计系统内核——双态 token、四档断点与自适应壳层
前端·flutter·交互设计
喵个咪2 小时前
GoWind CMS 拆解:发布审批——多级推进、逐级角色与全程留痕
前端·后端·go
喵个咪2 小时前
GoWind Flow 拆解:一个 Go 工作流引擎与它的双模式设计器
前端·后端·go
喵个咪2 小时前
GoWind Admin 拆解:打印模板设计器——从画布到服务端 PDF 的完整打印链路
前端·后端·go
总要学点什么2 小时前
第96篇:三维数据加载-城市建筑白模样式+着色器——让色带按体量上色,最白的那档却涂不上去
前端·gis·webgl·cesium·着色器·空间分析·白模
Hilaku3 小时前
你们公司有 35 岁以上的前端吗?
前端·javascript·程序员
徐小夕3 小时前
开源Vector-Graph-RAG:向量+图谱双引擎,打破纯向量RAG的效果天花板
前端·vue.js·github