2015-08-18 58 views

回答

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>

+0

嘗試過但失敗,出現此異常 - 未捕獲TypeError:無法讀取屬性'length'未定義 at a.inherits.b.fire –

+0

對不起,忘了fire()的一個參數。更新了答案。 – martynasma

+0

對不起,但我想從地圖外部觸發homeButtonClicked事件,這會將地圖帶回家位置 –

0

(對於martynasma)你仍然有觸發事件方法的錯誤(testEvent)。正確的是:

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