javascript - 从数据图的 json 文件中加载悬停数据上的弹出窗口

标签 javascript json d3.js datamaps

数据 map “Getting started ”页面有一个部分,用于在用户将鼠标悬停在特定国家/地区时自定义文本。然而,他们通过硬编码该信息来做到这一点:

<script>
    var map = new Datamap({
        element: document.getElementById('container'),
        fills: {
            HIGH: '#afafaf',
            LOW: '#123456',
            MEDIUM: 'blue',
            UNKNOWN: 'rgb(0,0,0)',
            defaultFill: 'green'
        },
        data: {
            IRL: {
                fillKey: 'LOW',
                numberOfThings: 2002
            },
            USA: {
                fillKey: 'MEDIUM',
                numberOfThings: 10381
            }
        },
        geographyConfig: {
            popupTemplate: function(geo, data) {
                return ['<div class="hoverinfo"><strong>',
                        'Number of things in ' + geo.properties.name,
                        ': ' + data.numberOfThings,
                        '</strong></div>'].join('');
            }
        }
    });
</script>

我想从外部 .json 文件加载该信息,以便我可以轻松更新它。我怎样才能做到这一点?我尝试设置 dataURL,但这需要一个完整的 topojson 文件,我不需要更新该文件。 非常感谢任何帮助!

最佳答案

根级别的

dataUrl 可以采用 json 或 csv 文件,如下例所示:http://bl.ocks.org/markmarkoh/11331459

      var election = new Datamap({
        scope: 'usa',
        element: document.getElementById('container1'),
        geographyConfig: {
          popupTemplate: function(geo, data) {
            return data && data.info && "<div class='hoverinfo'><strong>" + data.info + "</strong></div>";
          },
          highlightOnHover: false,
          borderColor: '#444',
          borderWidth: 0.5
        },
        dataUrl: 'data.json',
        dataType: 'json',
        data: {},
        fills: {
          'Visited': '#306596',
          'neato': '#0fa0fa',
          'Trouble': '#bada55',
          defaultFill: '#dddddd'
        }
      });

虽然 data.json 中的资源看起来像:

{
  "NY": {"fillKey": "Visited", "anotherProperty": "Born here"},
  "TX": {"fillKey": "Visited", "anotherProperty": "Live here"},
  "CA": {"fillKey": "Visited", "anotherProperty": "Here while writing this code"}
}

关于javascript - 从数据图的 json 文件中加载悬停数据上的弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37940288/

相关文章:

javascript - D3js 比例图表 x 轴在中间

javascript - 我想从 Cakefile 运行 d3

javascript - Jquery 菜单和照片库在 IE 中不起作用

javascript - 如何在回调中访问正确的“this”?

javascript - 请解释一下javascript中的自动全局

jquery - 从JSON获取数据时与其他数据一起获取 "undefined"

javascript - 根据另一个数组中的条目拆分数组

javascript - 对 Instagram Web 的 JSONP 调用返回未捕获的语法错误 : Unexpected token :

mysql更新更新表中的所有用户行

css - 如何通过 d3.js 显示表格中的特定列