在点击事件时从 Google Fusion Tables 访问单个单元格值

Posted

技术标签:

【中文标题】在点击事件时从 Google Fusion Tables 访问单个单元格值【英文标题】:Accessing individual cell value from Google Fusion Tables on Click event 【发布时间】:2012-05-24 15:44:36 【问题描述】:

我正在使用 Google Fusion Tables 制作地图,以显示我所在大学的人们发表的有关全球健康的学术期刊文章的数量。目前,当您单击一个国家/地区/多边形时,会出现一个弹出气泡,其中包含该国家/地区的名称和有关每个国家/地区发表的论文数量的样式在 Fusion Table 中。

我希望在单击某个国家/地区时更新侧边栏,其中包含指向相应文章摘要的链接。例如,当您单击法国时,边栏中会出现 12 个作者姓名和文章标题(带有链接)。

我希望有一种方法可以在单击一个国家/地区时从融合表中获取该国家/地区的名称。获得国家名称后,我希望调用一个函数来换出侧边栏中的文本并将其替换为正确的信息。我希望将这些函数存储在一个单独的 javascript 文件中,并从 html 文件中调用它们。

我已阅读参考信息,但无法找到如何存储单击的相应多边形中的单元格值。

Javascript 文件现在只是一个模型,但理想情况下,这是存储数据以填充侧边栏的位置。

我是否清楚我想要实现的目标?我已尽力澄清并提供详细信息。

由于我是新成员,Stack Overflow 只允许我粘贴 2 个链接。这是地图和融合表:

地图:https://mywebspace.wisc.edu/csterling/web/practice%202.html

融合表:https://www.google.com/fusiontables/DataSource?snapid=S501306uxNU

我想引用的 Javascript 文件将包含如下所示的函数:

function argentina() 
    document.getElementById("textDescription").innerHTML = "Articles Published: Curing diseases with indigenous knowledge by John So-and-so, etc";
;

【问题讨论】:

【参考方案1】:

这是我为解决问题所做的,非常感谢 Chris K. 的帮助!

google.maps.event.addListener(layer,'click',function(e) 
    var countryName = e.row['SOVEREIGNT'].value;
    if (countryName == 'Argentina')
        argentina();
    
);

【讨论】:

【参考方案2】:

我看到了 wisc.edu 网址,所以我想和麦迪逊打个招呼……

您需要在融合表层上使用click event,它将查询表并将数据写入页面元素。

这里有几个不同的 sn-ps,您可以模仿它们来获取被点击的行中单元格的值。每个人都将实现基本相同的目标。

//click listener on layer using jquery
google.maps.event.addListener(layer, 'click', function(e) 
    $("#dem-votes").html(
        '<p><strong>Percent:</strong> ' + e.row['Dem County Percent'].value +
        '<br><strong>Votes:</strong> ' + e.row['Dem County Votes'].value +
        '<br><strong>Vote Margin: </strong>' + e.row['Dem County Margin'].value + '</p>');
);


//click listener on layer using js
google.maps.event.addListener(layer, 'click', function(e) 
    document.getElementById('dem-votes').innerHTML =
        '<p><strong>Percent:</strong> ' + e.row['Dem County Percent'].value +
        '<br><strong>Votes:</strong> ' + e.row['Dem County Votes'].value +
        '<br><strong>Vote Margin: </strong>' + e.row['Dem County Margin'].value + '</p>';
);

键基本上是 e.row['Dem County Percent'].value,它是给定列的值 - 在本例中是 Dem County Percent - 在被点击的行中。

我 worked up your map 使用最后一个例子。似乎工作......

克里斯·K。

【讨论】:

克里斯-感谢您的快速回复。出于某种原因,堆栈溢出没有通知我您的回复,所以我很抱歉没有尽快回来查看。我有一个后续问题...我可以将 e.row['Dem County Percent'].value 存储为变量吗?如:var columnValue = e.row['Dem County Percent'].value;

以上是关于在点击事件时从 Google Fusion Tables 访问单个单元格值的主要内容,如果未能解决你的问题,请参考以下文章

Fusion Tables + Google Maps API,删除信息窗口/卡片/气球?

easyui 后台页面,在Tab中的链接点击后添加一个新TAB的解决方法

Google地图未在点击活动中注册

关于 Google Fusion Table 和 Google Maps 的一些问题

google fusion管道没有写入任何接收器组件

Google Fusion Table to Google Spreadsheet - 按选定标准更新电子表格