所以我从一个很小的例子开始,这个例子效果很好。我使用QGIS绘制了一条线,然后用mapshaper将其转换为topojson。然后使用D3.js加载并可视化它。这是一个更大但不起作用的例子:
jsfiddle.net/kwoxer/kpL1uyy2/2/
正如你所看到的,它不只是显示一行,而是显示疯狂的线条,就好像转换出错了一样。已经测试了不同的浏览器。
但是就像我说的,我已经用QGIS做了一个小行,转换它,一切都很好。这是一条线的大小问题吗?还是通过转换器?
这里有一张来自QGIS的图片,它在浏览器中应该是什么样的:http://i.imgur.com/s1FPn2P.png
那么,创建(巨大)自己的地图并在D3.js中使用它的好方法是什么呢?
发布于 2015-01-22 22:35:56
我看了你的Fiddle,我想我看到了问题。您使用的是d3的等矩形地图投影,它期望lat长的坐标,x值在范围内- 180,180,y值在范围- 90,90。数据集的实际x和y范围是-991.4407052281722、6787.6906928973385和-4789.571699454693、-155.32649155239142。当d3遇到预期范围之外的坐标时,它会包装它们--这就是为什么这些线条看起来“疯狂”的原因。
根据您的坐标值,我猜您在QGIS项目中使用的是投影坐标系。若要使用d3显示数据,可以在lat长坐标下导出形状(例如,在保存QGIS层时选择"WGS 84“作为CRS ),也可以将d3与投影数据一起使用(请参阅Drawing already projected geoJSON map in d3.js)。
https://stackoverflow.com/questions/28075867
复制相似问题