В AmMap присутствует событие «homeButtonClicked», которое срабатывает, когда вы нажимаете кнопку «Домой».
Я хочу вызвать это событие вручную. Есть ли способ сделать это?
В AmMap присутствует событие «homeButtonClicked», которое срабатывает, когда вы нажимаете кнопку «Домой».
Я хочу вызвать это событие вручную. Есть ли способ сделать это?
Чтобы полностью уменьшить масштаб карты, используйте zoomToSelectedObject()
ant pass в map.dataProvider
в качестве параметра.
I.e.:
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>
fire()
. Обновил ответ.
- person martynasma; 18.08.2015
Кажется, код изменился с момента последнего ответа на этот вопрос. Для меня это то, что работает.
map.clickMapObject(map.dataProvider)
(Для martynasma) У вас все еще есть ошибка в методе триггерного события (testEvent). Правильно:
map.fire({
type: "homeButtonClicked",
chart: map
});