在AmChart地图中如何手动触发事件?

时间:2015-08-18 09:55:39

标签: amcharts ammap

在AmMap中," homeButtonClicked"当您点击主页按钮时触发了该事件。

我想手动触发该事件。 有没有办法这样做?

3 个答案:

答案 0 :(得分:1)

要完全缩小地图,请使用map.dataProvider中的zoomToSelectedObject()蚂蚁传递作为参数。

即:

map.zoomToSelectedObject(map.dataProvider);

工作演示:

var map = AmCharts.makeChart( "chartdiv", {
  "type": "map",
  "dataProvider": {
    "map": "worldLow",
    "getAreasFromMap": true
  },
  "areasSettings": {
    "autoZoom": true
  }
} );

function zoomOut() {
  map.zoomToSelectedObject(map.dataProvider);
}
#chartdiv {
  width: 100%;
  height: 250px;
}
<script src="http://www.amcharts.com/lib/3/ammap.js"></script>
<script src="http://www.amcharts.com/lib/3/maps/js/worldLow.js"></script>
<input type="button" value="Zoom Out" onclick="zoomOut();" />
<div id="chartdiv"></div>

要在地图或任何amCharts对象上触发事件,您可以使用fire()方法。即:

map.fire("homeButtonClicked", {
  type: "homeButtonClicked",
  chart: map
});

这是一个有效的例子:

var map = AmCharts.makeChart( "chartdiv", {
  "type": "map",
  "dataProvider": {
    "map": "worldLow",
    "getAreasFromMap": true
  },
  "areasSettings": {
    "autoZoom": true
  }
} );

map.addListener("homeButtonClicked", function(event) {
  alert('homeButtonClicked');
});

function testEvent() {
  map.fire("homeButtonClicked", {
    type: "homeButtonClicked",
    chart: map
  });
}
#chartdiv {
  width: 100%;
  height: 280px;
}
<script src="http://www.amcharts.com/lib/3/ammap.js"></script>
<script src="http://www.amcharts.com/lib/3/maps/js/worldLow.js"></script>
<input type="button" value="trigger event" onclick="testEvent();" />
<div id="chartdiv"></div>

答案 1 :(得分:0)

(对于martynasma)你仍然在触发事件方法(testEvent)上有错误。正确的是:

map.fire({
    type: "homeButtonClicked",
    chart: map
  });

答案 2 :(得分:0)

自上次回答以来,代码似乎已发生变化。对我来说,这是有效的。

map.clickMapObject(map.dataProvider)