使用D3.js和GeoJson在地图上的州显示一些文本

维沙尔

我一直在使用Storm和Redis,并且只是为了可视化从Redis获取的数据,我需要绘制一张地图(印度)并根据状态放置数据。我已经正确地绘制了地图,但是不知道如何在其各自的状态边界内显示文本。任何帮助将不胜感激。谢谢。

<!DOCTYPE html>
<html lang="en">
<head>
<title>Visualization Demo</title>
<script type="text/javascript" src="d3.min.js"></script>
<script type="text/javascript" src="d3.geo.min.js"></script>

<link type="text/css" rel="stylesheet" href="color-scheme.css"/>
<style type="text/css">
svg {
    background: #282828;
}
body {
    background: #282828;
}
h1 {
    color:#999999;
}
#india {
    fill: #99FFCC;
    opacity: .9;
    stroke: white;
    stroke-width: 1.0;
}
#chart {
    margin-left:150px;
}
</style>
</head>

<body>
    <h1><center>VISUALIZATION</center></h1>
    <div id="chart"></div>
    <script type="text/javascript">
        var w = 1000;
        var h = 1500;
        var proj = d3.geo.mercator();
        var path = d3.geo.path().projection(proj);
        var t = proj.translate(); // the projection's default translation
        var s = proj.scale() // the projection's default scale
        var map = d3.select("#chart").append("svg:svg")
        .attr("width", w)
        .attr("height", h)
        .call(initialize);
        var india = map.append("svg:g")
        .attr("id", "india");
        d3.json("india-states.json", function (json) {
            india.selectAll("path")
            .data(json.features)
            .enter().append("path")
            .attr("d", path);
        });
        function initialize() {
            proj.scale(9000);
            proj.translate([-1520, 1000]);
        }
    </script>
</body>
</html>
杰拉尔多·富塔多

在您的d3.json函数中尝试以下操作

india.selectAll("text")
    .data(json.features)
    .enter()
    .append("text")
    .attr("fill", "black")
    .attr("transform", function(d) { 
        var centroid = path.centroid(d);
        return "translate(" + centroid[0] + "," + centroid[1] + ")"
    })
    .attr("text-anchor", "middle")
    .attr("dy", ".35em")
    .text(function(d) {
          return d.properties.STATE_NAME;
    });

您可能没有properties.STATE_NAME州名,但只需在JSON中检查在此处应使用的内容即可。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用D3.js和GeoJson在地图上的州显示一些文本

来自分类Dev

D3 Geojson 地图不会显示

来自分类Dev

使用Node js和D3实时在地图上绘制状态名称

来自分类Dev

使用D3在地图上绘制点

来自分类Dev

D3对“ select”和“ selectAll”的使用

来自分类Dev

d3 在条形图上使用缩放和画笔

来自分类Dev

谷歌地图使用 d3 路径作为图层使用 (d3 v4)

来自分类Dev

尝试使用 D3 创建地图,但未显示

来自分类Dev

使用D3渲染geoJSON,使用imageOverlay渲染Leaflet

来自分类Dev

D3 JS-GeoJson(美国地图)-未加载

来自分类Dev

使用D3制作多层地图

来自分类Dev

使用D3创建世界Choropleth地图

来自分类Dev

d3:使用 DataMaps 创建美国地图

来自分类Dev

如何使用d3更新文本输入的内容?

来自分类Dev

使用D3将Ticks值更改为文本

来自分类Dev

D3:如何对点击文本使用更新模式?

来自分类Dev

从html创建数组以使用D3 Wordcloud显示

来自分类Dev

无法使用D3显示线形图

来自分类Dev

使用RequireJS加载图和D3

来自分类Dev

使用d3过渡增加和减少圆的半径

来自分类Dev

使用d3和Leaflet实现动画缩放

来自分类Dev

使用D3和topojson时路径混乱?

来自分类Dev

使用d3和webView进行本机反应

来自分类Dev

使用d3拖动和缩放图表

来自分类Dev

如何在 d3 中使用 SimulationLinkDatum 和 SimulationNodeDatum

来自分类Dev

使用 d3 插入 startAngle 和 endAngle

来自分类Dev

将 Webpack 与 d3、jQuery 和 Bootstrap 结合使用

来自分类Dev

使用d3 js的水平条形图

来自分类Dev

使用Package JS的Dart D3系列