You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何调整amCharts地图中MapPolygonSeries或Polygon的大小?

amCharts 热力图小区域放大实现方案

问题根因

直接对复制到新MapPolygonSeries的多边形设置scale属性不生效,是因为地图系列默认会根据全局投影、缩放等级自动重置多边形变换属性,手动设置的缩放参数会被覆盖。

具体实现步骤

  • 为需要放大的小区域单独创建独立的MapPolygonSeries,关闭系列自动聚合配置calculateAggregates: false,同时给该系列下所有复制的多边形设置projection: "none",脱离全局地图投影的自动变换控制。
  • 不直接使用scale属性调整尺寸,而是调用amCharts内置的坐标变换方法处理多边形路径,示例代码如下:
// originalPoly为原始小区域多边形实例,scaleRatio为自定义放大倍数
const areaCenter = originalPoly.geoCentroid;
// 基于区域中心点缩放路径坐标
const scaledPath = am4core.multiplyMultiPolygon(originalPoly.multiPolygon, scaleRatio, areaCenter);
// 创建复制多边形
const copiedPoly = customSeries.mapPolygons.create();
copiedPoly.multiPolygon = scaledPath;
copiedPoly.fill = am4core.color("#ff0000");
  • 调整放大后多边形的显示位置,直接设置copiedPoly.x、copiedPoly.y属性即可移动到侧边指定区域,该设置不会被地图投影逻辑覆盖。
  • 如有交互需求,可单独为该自定义系列的多边形绑定事件监听,不会和原始地图区域的交互逻辑冲突。

内容的提问来源于stack exchange,提问作者Mariano

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 07:54:02