0
中顯示與標記相同的數據我想在infowindow谷歌地圖中顯示amcharts,但我的圖表無法循環infowindow中的數據。 如果我點擊標記1數據比例不能顯示並點擊標記2數據比例標記1可以顯示,但標記2不能顯示。無法在infowindow Google地圖api(v3)
Codepen.ioMy Code
如何顯示數據信息窗口相同帶有標記。
中顯示與標記相同的數據我想在infowindow谷歌地圖中顯示amcharts,但我的圖表無法循環infowindow中的數據。 如果我點擊標記1數據比例不能顯示並點擊標記2數據比例標記1可以顯示,但標記2不能顯示。無法在infowindow Google地圖api(v3)
Codepen.ioMy Code
如何顯示數據信息窗口相同帶有標記。
AmChart的makeChart
方法要求在第一個參數中指定的ID存在於DOM中,否則它將不起作用。您在信息窗口甚至附加到DOM之前調用initAmCharts,因此您需要在infowindow中添加一個domready
偵聽器,並在那裏調用makeChart
。您還需要附加一個close
偵聽器來清除圖表實例以節省資源,但是您需要在domready
事件期間克隆圖表數據,以便清除不會徹底刪除它們。
下面是在保留數據的同時添加和清除圖表的代碼。我刪除了轉移呼叫,因爲他們似乎是多餘的,也打破了當重新打開信息窗口圖表:
var chartLine;
var chartWa;
google.maps.event.addListener(infowindow, 'domready', function() {
var line_data_copy = JSON.parse(JSON.stringify(item.line_data_chart));
var wa_data_copy = JSON.parse(JSON.stringify(item.wa_data_chart));
chartLine = initAmChart("divChartLine", colors_line, line_data_copy);
chartWa = initAmChart("divChartWa", colors_wa, wa_data_copy);
chartLine.allLabels[0].text = item.line_ratio+"%";
chartLine.validateData();
chartWa.allLabels[0].text = item.wa_ratio+"%";
chartWa.validateData();
});
google.maps.event.addListener(infowindow, 'close', function() {
chartLine.clear();
chartWa.clear();
})
@xorsparkI曾經嘗試過,但如何關閉自動映射如果domready中UB事件點擊? 我試圖刪除這個 infowindow.setContent(infowindowChart); infowindow.open(marker.getMap(),marker); }); // end_marker_listener google.maps.event.addListener(信息窗口, '關閉',函數(){ chartLine.clear(); chartWa.clear();} ) 以及與此替換 infowindow.close(); infowindow.setContent(infowindowChart); infowindow.open(marker.getMap(),marker); }); 但不工作 –
我不確定你想問什麼。你能發佈一個更好地解釋問題的代碼嗎? – xorspark