用D3进行光栅重投影

时间:2013-05-18 08:24:27

标签: map d3.js projection map-projections

我正在尝试使用D3的geo类来解决光栅重投影问题并且有点卡住了。 This是Mike Bostock发现的原始代码here的副本。在我的本地主机上运行时,地图只显示阿拉斯加和不列颠哥伦比亚省的一小部分,但其余部分是空白的。当使用D3的正交投影时,我也会遇到同样的问题。此外,我尝试使用Geotif文件,但没有加载。图像必须是JPEG格式吗?提前谢谢,汤姆

1 个答案:

答案 0 :(得分:3)

如果您打开JavaScript控制台,您将看到SecurityError:

Unable to get image data from canvas because the canvas has been tainted by cross-origin data. bl.ocks.org:1
Uncaught Error: SecurityError: DOM Exception 18 

Canvas受same-origin policy的约束。除非您加载的图像设置了Access-Control-Allow-Origin header,否则只要将图像从eoimages.gsfc.nasa.gov绘制到画布中,画布就会变为污染。您不能从受污染的画布中读取像素值(因为它可能会将私人信息泄露给第三方)。

您需要在与您的网页相同的域中托管此图片的副本(例如,在其他示例中使用的blue-marble.jpg)。或者,您可以向他们的服务器上的enable CORS请求NASA,但这可能需要一段时间。