箭头函数返回值书写错误导致的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])});

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

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

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_zyzoomed 函数调用之前已经正确地被更新。如果这些比例尺在缩放事件发生时没有更新,那么标签的位置也会出错。

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

  1. 确保在 zoomed 函数中正确更新 polygon-labelxy 属性。
  2. 检查 d.data 是否正确地代表了标签的坐标。
  3. 确保 _zx_zy 在缩放事件发生时被正确更新。
相关推荐
电商API_180079052474 分钟前
1688商品详情采集API全解析:技术原理、实操指南与业务落地
大数据·前端·人工智能·网络爬虫
記億揺晃着的那天5 分钟前
Chrome 自动填充“用户名”到普通输入框 - 解决方案
前端·chrome
初圣魔门首席弟子21 分钟前
Qt自定义控件bug记录
bug
LawrenceLan23 分钟前
Flutter 零基础入门(二十一):Container、Padding、Margin 与装饰
开发语言·前端·flutter·dart
967740 分钟前
初始web server的认识1---webserver的用途和工作流程
前端
叫我:松哥1 小时前
基于神经网络算法的多模态内容分析系统,采用Flask + Bootstrap + ECharts + LSTM-CNN + 注意力机制
前端·神经网络·算法·机器学习·flask·bootstrap·echarts
vx_bisheyuange1 小时前
基于SpringBoot的知识竞赛系统
大数据·前端·人工智能·spring boot·毕业设计
搂着猫睡的小鱼鱼1 小时前
签名逆向与浏览器自动化 / 动态渲染抓取京东评论信息
前端·javascript·自动化
wangbing11251 小时前
ES6 (ES2015)新增的集合对象Set
前端·javascript·es6
nvd112 小时前
企业级 LLM 实战:在受限环境中基于 Copilot API 构建 ReAct MCP Agent
前端·copilot