1

我正在尝试使用 D3 的地理类进行光栅重投影,但有点卡住了。 是 Mike Bostock 在此处找到的原始代码的副本。在我的本地主机上运行时,地图仅显示阿拉斯加和不列颠哥伦比亚省周围的一小部分,但其余部分为空白。当使用 D3 的正交投影时,我也遇到了同样的问题。另外,我尝试使用 Geotif 文件,但没有加载。图片必须是JPEG格式吗?在此先感谢,汤姆

4

1 回答 1

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 受同源政策的约束。除非您正在加载的图像设置了Access-Control-Allow-Origin 标头,否则一旦您将 eoimages.gsfc.nasa.gov 中的图像绘制到画布中,画布就会变成tainted。不允许您从受污染的画布中读取像素值(因为它可能会将私人信息泄露给第三方)。

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

于 2013-05-19T16:36:07.423 回答