在3d.js中绘制GeoJSON
GeoJSON draw in 3d.js
我正在使用库cartogramm .js(在这里您可以看到它如何工作的示例)
http://prag.ma/code/d3-cartogram/netmigrate/2011
我正在尝试做同样的事情,并使用以下代码:
<!DOCTYPE HTML>
<html lang="en">
<head>
<title>cartogram</title>
<script src="http://d3js.org/d3.v3.min.js" charset="utf-8"></script>
<script src="http://d3js.org/queue.v1.min.js"></script>
<script src="http://d3js.org/topojson.v1.min.js"></script>
<script type="text/javascript" src="http://prag.ma/code/d3-cartogram/cartogram.js"></script>
<script type="text/javascript" src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
</head>
<body>
<svg id="map"></svg>
<script type="text/javascript">
var cartogram = d3.cartogram()
.projection(d3.geo.albersUsa())
.value(function(d) {
return Math.random() * 100;
});
d3.json("https://raw.githubusercontent.com/shawnbot/d3-cartogram/master/data/us-states.topojson", function(topology) {
var features = cartogram(topology, topology.objects.states.geometries);
console.log(features);
d3.select("svg").selectAll("path")
.data(features)
.enter()
.append("path")
.attr("d", cartogram.path);
});
</script>
</body>
</html>
我的问题是什么都没有出现,也没有错误。我确信GeoJSON文件被调用和处理。我该怎么显示地图?我是d3.js的新手。有什么问题吗?我的json是相同的链接。
selection.data()
只接受数组作为数据。在您的示例中,features
不是一个数组,它是一个包含属性features
和属性arcs
的复杂对象。
使用features.features
(以及扩展svg的尺寸)时显示地图:
d3.select("svg")
.attr("width", 1000)
.attr("height", 500)
.selectAll("path")
.data(features.features)
.enter()
.append("path")
.attr("d", cartogram.path);
相关文章:
- D3在一个调用中绘制不同的SVG形状,没有可见性
- 有没有一个javascript图形绘制库可以进行气球树布局
- 使用相同的数据集绘制各种符号
- 使用onclick绘制SVG路径
- 在谷歌地图上绘制位置数据库
- 用chart.js绘制条形图
- “可绘制地图”设置地图选项“纬度-经度”
- 多维数据集网格未在指定的分区中绘制
- 使用谷歌图表在x轴上绘制日期
- 使用fabric.js从矩形区域获取对象,并将该区域绘制到画布上
- 如何在React Native中绘制图形
- 如何使用传单pip插件与纯GeoJSON数据
- 使用AJAX调用将GeoJSON数据拉入传单
- 画布中绘制的矩形区域的弹出工具提示
- 如何在OpenLayers中获取动态绘制的多边形的坐标
- 在传单上绘制GeoJSON
- D3js 在 geoJSON FeatureCollection 中只绘制一个要素
- 用geoJson绘制特定形状
- 在3d.js中绘制GeoJSON
- OpenLayers不能在map上绘制geoJSON