使用 d3.js 的 v3,我在使用 geoJSON 数据绘制地图时遇到问题。代码和生成的地图显示在:http ://bl.ocks.org/73833ec90a8a77b0e29f 。此示例使用 d3.js 的 v2 生成正确的地图。
- 我的数据已经被投影(它们是荷兰国家电网/Rijksdriehoekstelsel 坐标)。为了弥补这一点,我编写了自己的投影函数,它只是将地图的坐标系转换为像素(例如缩放和平移)。
- d3.js v3 中的 d3.geo.path() 重新采样数据。但是,重采样中生成的点似乎与我的地图不在同一个坐标系中(我假设它们是 lon、lat 坐标)。
我不想将我的地图坐标转换为 lon,lat 坐标,因为地图已经按照我想要的方式投影,而且据我所知,这不是一个微不足道的投影。
如果问题确实是由重采样引起的,我想禁用重采样。但是,在文档中我真的找不到如何做到这一点。我可以传递一个流对象,而不是将投影函数传递给 d3.geo.path.projection()。我认为以下方法会起作用:
var projection = d3.geo.projection(function(x, y) {
return [ scale*(x-xmin), height-scale*(y-ymin) ];
}).precision(0);
但事实并非如此。可能也与我没有纬度,经度坐标的事实有关。如何使用自定义投影功能禁用重采样?
或者当其他原因导致问题时,我想听听。
谢谢。