2013-05-18 4 views
1

D3의 geo 클래스를 사용하여 래스터 재 투영에 대해 머리를 쓰려고합니다. 조금 갇혀 있습니다. This은 Mike Bostock의 원래 코드 사본 인 here입니다. 내 로컬 호스트에서 실행할 때지도는 알래스카와 브리티시 컬럼비아 주변의 작은 부분 만 표시하지만 나머지는 비어 있습니다. D3의 직교 투영법을 사용할 때도 같은 문제가 발생합니다. 또한 Geotif 파일을 사용해 보았지만로드하지 않았습니다. 이미지가 JPEG 형식이어야합니까? 미리 감사드립니다, 톰D3의 래스터 재 투영

답변

3

당신은 자바 스크립트 콘솔을 열 경우에서 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 

캔버스가 same-origin policy 대상입니다. 로드하는 이미지가 Access-Control-Allow-Origin header으로 설정되어 있지 않으면 eoimages.gsfc.nasa.gov에서 캔버스로 이미지를 그 으자 마자 캔버스가 이됩니다. 오염 된 캔버스에서 픽셀 값을 읽을 수 없습니다 (개인 정보가 제 3 자에게 유출 될 수 있음).

페이지와 동일한 도메인에이 이미지의 사본을 호스팅해야합니다 (예 : 다른 예에서 사용 된 blue-marble.jpg). 또는 자신의 서버에서 NASA에 enable CORS으로 탄원 할 수는 있지만 시간이 걸릴 수 있습니다.

+0

감사합니다. @mbostock. 저는 청원 아이디어를 좋아하지만 낙관적이지 않습니다. 응답 해 주셔서 감사합니다. –