3

在 AmMap 中,出现“homeButtonClicked”事件,当您单击主页按钮时会触发该事件。

我想手动触发该事件。有什么办法吗?

4

3 回答 3

1

自上次回答以来,代码似乎已更改。对我来说,这是有效的。

map.clickMapObject(map.dataProvider)
于 2018-03-27T18:46:16.043 回答
1

要完全缩小地图,请使用zoomToSelectedObject()ant pass inmap.dataProvider作为参数。

IE:

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()方法。IE:

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>

于 2015-08-18T11:33:05.513 回答
-1

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

map.fire({
    type: "homeButtonClicked",
    chart: map
  });
于 2017-07-16T17:26:10.933 回答