我正在为纽约的自治市做一张地图,但我似乎搞不懂投影:我唯一得到的就是一张小小的地图。
我试着重新创建这示例,这只会让控制台因为错误而发疯,我怀疑这是因为这个等式有些不对劲。
当我试图让阿尔伯斯工作时,我尝试了这问题的答案,但我还是无法让地图工作起来。
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。
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);
});请,请停:
提前感谢!
发布于 2013-09-21 03:43:33
我和纽约市的这里一起创建了一个这里。您使用WSG84 84/Mercator的路径是正确的,因为这是原始数据的所在,QGIS中的快速检查演示了这一点。
QGIS也很好地检查了数据的中心,结果是-73.94,40.70。请注意,与您的协调器相反,它们是lat和lat,但是d3需要long和lat,这在API接口中已经讨论过了。另一件要注意的事情是消极的一面。北半球是正的,所以北半球的纬度是正的,南半球是负的。对于东半球和西半球来说,这是积极的。当然,这只是全球预测的问题,美国阿尔贝尔斯对美国不会有负面影响。哦,如果不看贾森·戴维斯,关于预测的讨论就不完整了。
如果您想要使用与投影不同的投影,我通常认为最好将数据预处理到投影中,而QGIS是一个很好的工具,但是还有很多其他的工具,比如gdal。
https://stackoverflow.com/questions/18920345
复制相似问题