用d3和topojson绘制一张地图
Draw a map with d3 and topojson
由于d3和topojson,我试图绘制一张地图。然后我用这个代码一个接一个地画出每个国家:
d3.json("datamaps-0.5.0/src/js/data/world.topo.json", function(error, map) {
console.log(map);
for (i=0; i<map.objects.world.geometries.length; i++)
{
svg.append("path")
.attr("class", "state")
.datum(topojson.feature(map, map.objects.world.geometries[i]))
.attr("d", path);
}
});
尽管代码运行良好,但我正在寻找一种比循环更优雅的方式来绘制这样的地图。。。
一种方法是首先计算数据数组,然后使用d3
将其映射到路径
var features= map.objects.world.geometries
.map( //.map: create a new array by applying the function below to each element of the orignal array
function(g) { //take the geometry
return topojson.feature(map, g) //and return the corresponding feature.
}
);
svg.selectAll(".state")
.data(features)
.enter()
.append("path")
.attr("class", "state")
.attr("d", path);
这应该与您的代码完全等效。
相关文章:
- 有人能提供一张ember数据与broswer's的持久层
- jQuery只隐藏<tr>在一张桌子上
- 如何从三张图片中选择一张?其余的必须是看不见的
- 通过onclick事件将一张图片更改为6张图片
- Sequelize hasMany浏览另一张表
- jm按下停止步骤进入滚动的下一张幻灯片
- 我用JavaScript FIleReader读了一张图片,但是我无法得到图片的信息
- 当 Flickity 到达下一张或上一张幻灯片时的事件
- 用d3和topojson绘制一张地图
- 附近搜索的标记仅显示在最后一张地图上
- 一张 Ovi 地图上有 2 条或更多路线
- 根据标记在另一张地图中的拖动来更新地图中心
- Esri Javascript API人口普查信息弹出和公园弹出一张地图
- 在一张地图上显示多个谷歌地图标记和方向
- 我怎样才能拥有一张地图<字符串,integer>在javaScript中
- 一页多张地图-ColdFusion
- 我试图在一个给定地址的网站上加载多个谷歌地图.最后一张地图是唯一显示的地图
- 在谷歌地图上放一张图片
- 多种出行模式,使用谷歌地图 API 渲染一张地图
- 我如何使用算法随机生成一张“地图”?使用预设图像