谷歌的Javascript onClick函数';地球化学艺术

谷歌的Javascript onClick函数';地球化学艺术,javascript,google-visualization,dom-events,Javascript,Google Visualization,Dom Events,我正试图用谷歌的地图来显示地图 地图很好地显示了数据和指定的国家,但我无法确定如何将链接onClick分配给每个特定的国家,甚至无法为这些国家获得任何onClick函数 这个链接描述了事件“regionClick”和“select”,这听起来像是我所需要的,尽管我不确定它们将如何触发我的链接函数……我是javascript新手。使用“select”时,似乎有一个“getselect”方法 load('visualization','1',{'packages':['geomap']}); se

我正试图用谷歌的地图来显示地图

地图很好地显示了数据和指定的国家,但我无法确定如何将链接onClick分配给每个特定的国家,甚至无法为这些国家获得任何onClick函数

这个链接描述了事件“regionClick”和“select”,这听起来像是我所需要的,尽管我不确定它们将如何触发我的链接函数……我是javascript新手。使用“select”时,似乎有一个“getselect”方法


load('visualization','1',{'packages':['geomap']});
setOnLoadCallback(drawMap);
函数drawMap(){
var data=google.visualization.arrayToDataTable([
[“国家”、“项目”],
[‘俄罗斯’,3],
[‘法国’,2],
[‘西班牙’,4]
]);
var选项={};
选项['dataMode']='regions';
选项['width']='834px';
选项['height']='521px';
var container=document.getElementById('map_canvas');
var chart=新的google.visualization.geograpart(容器);
图表绘制(数据、选项);
};
函数myClickHandler(){
var selection=chart.getSelection();
对于(变量i=0;i

感谢您的帮助和指导。

您需要做几件事。首先,由于函数
myClickHandler
引用对象
chart
,因此它需要与
chart
在同一范围内,因此必须将其移动到
drawMap
中。其次,您需要为使用
myClickHandler
函数的图表创建
'click'
事件处理程序。代码应该是这样的:

function drawMap() {
    var data = google.visualization.arrayToDataTable([
        ['Country', 'Projects'],
        ['Russia', 3],
        ['France', 2],
        ['Spain', 4]
    ]);

    var options = {
        dataMode: 'regions',
        width: 834,
        height: 521
    };

    var container = document.getElementById('map_canvas');
    var chart = new google.visualization.GeoChart(container);

    function myClickHandler(){
        var selection = chart.getSelection();
        var message = '';
        for (var i = 0; i < selection.length; i++) {
            var item = selection[i];
            if (item.row != null && item.column != null) {
                message += '{row:' + item.row + ',column:' + item.column + '}';
            } else if (item.row != null) {
                message += '{row:' + item.row + '}';
            } else if (item.column != null) {
                message += '{column:' + item.column + '}';
            }
        }
        if (message == '') {
            message = 'nothing';
        }
        alert('You selected ' + message);
    }

    google.visualization.events.addListener(chart, 'select', myClickHandler);

    chart.draw(data, options);
}
google.load('visualization', '1', {packages: ['geochart'], callback: drawMap});
函数drawMap(){
var data=google.visualization.arrayToDataTable([
[“国家”、“项目”],
[‘俄罗斯’,3],
[‘法国’,2],
[‘西班牙’,4]
]);
变量选项={
数据模式:“区域”,
宽度:834,
身高:521
};
var container=document.getElementById('map_canvas');
var chart=新的google.visualization.geograpart(容器);
函数myClickHandler(){
var selection=chart.getSelection();
var消息=“”;
对于(变量i=0;i

jsIDLE:

当用户单击某个区域时,您是否正在尝试获取myClickHandler?在你上面提到的GeoChart文档url中搜索“enableRegionInteractivity”。你是否也试图在地图上只显示俄罗斯、法国和西班牙,而不显示其他国家?它说它默认在区域模式下启用,而且我仍然不知道如何拾取这些射击事件。不会有其他国家(大多数),这只是一个测试。