如何将标签粘贴到地图线上

时间:2019-07-24 15:41:59

标签: amcharts4

我使用AMChart地图,并尝试在地图线上附加标签。有文档,但是我不在同一上下文中:我必须实时更新线曲线,所以我在am4maps.MapLineSeries上使用data属性。

    this.lineSeries = this.chart.series.push(new am4maps.MapLineSeries());
    let lineTemplate = lineSeries.mapLines.template;
    lineTemplate.stroke =color;
    lineTemplate.strokeDasharray ="3";

当用户单击按钮时,我在这些位置之间添加位置和行:

    this.lineSeries =[multiGeoLine...]

它工作正常。

所以在这里,我没有对 lineObjects 参考的引用,如文档中所示

首先尝试: 我试图像在文档上那样做,但是它使用了multiGeoLine属性。如果我更新multiGeoLine,则行不会更新:

var line = lineSeries.mapLines.create();
line.multiGeoLine = [[
  { "latitude": 48.856614, "longitude": 2.352222 },
  { "latitude": 40.712775, "longitude": -74.005973 },
  { "latitude": 49.282729, "longitude": -123.120738 }
]];

用户单击时:

line.multiGeoLine =[]

什么都没发生。

第二次尝试 定义线系列模板时,我尝试添加项目符号。

this.lineSeries = this.chart.series.push(new am4maps.MapLineSeries());
let lineTemplate = lineSeries.mapLines.template;
lineTemplate.stroke =color;
lineTemplate.strokeDasharray ="3";
var line = lineSeries.mapLines.create();
// Add a map object to line
var bullet = line.lineObjects.create();
bullet.nonScaling = true;
bullet.position = 0.5;
bullet.width = 15;
bullet.height = 15;
bullet.horizontalCenter = "middle";
bullet.verticalCenter = "middle";

var rect = bullet.createChild(am4core.Rectangle);
rect.width = 15;
rect.height = 15;
rect.fill = am4core.color("#fff");
rect.strokeWidth = 3;
rect.stroke = am4core.color("#e03e96");

是否可以通过在我的脑海中使用data属性来实时更新地图上的直线并在曲线上放置标签?

0 个答案:

没有答案