首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >d3.js mercator投影到NYC地图

d3.js mercator投影到NYC地图
EN

Stack Overflow用户
提问于 2013-09-20 15:21:37
回答 1查看 3.9K关注 0票数 2

我正在为纽约的自治市做一张地图,但我似乎搞不懂投影:我唯一得到的就是一张小小的地图。

我试着重新创建示例,这只会让控制台因为错误而发疯,我怀疑这是因为这个等式有些不对劲。

当我试图让阿尔伯斯工作时,我尝试了问题的答案,但我还是无法让地图工作起来。

代码语言:javascript
复制
  With 960/500 height and width, I used: var projection = d3.geo.albers().center([40.71, 73.98]).parallels([29.5, 45.5]).scale(10000).translate([(width) / 2, (height)/2]);

现在,我正在使用一个横向的Mercator,下面的代码,以及我使用一个这些文件创建的topojson。

代码语言:javascript
复制
  var width = 960,
   height = 500;

  var svg = d3.select("body").append("svg")
    .attr("width", width)
    .attr("height", height);

  d3.json("nyc-borough.json", function(error, nyb) {

  var boroughs = topojson.feature(nyb, nyb.objects["nyc-borough-boundaries-polygon"]).features;

  var projection = d3.geo.transverseMercator()
.scale(1600)
.rotate([73 + 58 / 60, -48 - 47 / 60]);

var path = d3.geo.path()
.projection(projection);

var g = svg.append("g");

g.append("g")
.attr("id", "boroughs")
.selectAll(".state")
.data(boroughs)
.enter().append("path")
.attr("class", function(d){ return d.properties.name; })
.attr("d", path);

});

请,请停:

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-09-21 03:43:33

我和纽约市的这里一起创建了一个这里。您使用WSG84 84/Mercator的路径是正确的,因为这是原始数据的所在,QGIS中的快速检查演示了这一点。

QGIS也很好地检查了数据的中心,结果是-73.94,40.70。请注意,与您的协调器相反,它们是lat和lat,但是d3需要long和lat,这在API接口中已经讨论过了。另一件要注意的事情是消极的一面。北半球是正的,所以北半球的纬度是正的,南半球是负的。对于东半球和西半球来说,这是积极的。当然,这只是全球预测的问题,美国阿尔贝尔斯对美国不会有负面影响。哦,如果不看贾森·戴维斯,关于预测的讨论就不完整了。

如果您想要使用与投影不同的投影,我通常认为最好将数据预处理到投影中,而QGIS是一个很好的工具,但是还有很多其他的工具,比如gdal。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18920345

复制
相关文章

相似问题

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