首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在3d.js中绘制GeoJSON

在3d.js中绘制GeoJSON
EN

Stack Overflow用户
提问于 2015-08-20 12:23:08
回答 1查看 335关注 0票数 0

我正在使用库cartogram.js (在这里您可以看到它是如何工作的示例)。

http://prag.ma/code/d3-cartogram/#netmigrate/2011

我正在尝试做同样的事情,并使用下面的代码:

代码语言:javascript
复制
<!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和链接是一样的。

EN

回答 1

Stack Overflow用户

发布于 2015-08-20 19:40:56

selection.data()只接受数组作为数据。在您的示例中,features不是一个数组,它是一个包含属性features和属性arcs的复杂对象。

当您使用features.features (以及svg的扩展维度)时,会显示地图:

代码语言:javascript
复制
d3.select("svg")
    .attr("width", 1000)
    .attr("height", 500)
  .selectAll("path")
    .data(features.features)
    .enter()
  .append("path")
    .attr("d", cartogram.path);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32109529

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档