Html2canvas: javascriptを使用してグーグルマップのスクリーンショットを撮る

作成日 2014年12月13日  ·  7コメント  ·  ソース: niklasvh/html2canvas

こんにちは

私は次のコードを試しました:このdiv "#map-canvas"コンテンツグーグルマップ。
$( '#map-canvas')。html2canvas({
onrendered:function(canvas){
var img = canvas.toDataURL( "image / png");
window.open(img);
}
});
}

このコードを使用すると、白地図が表示されます。
グーグルマップの出力を見つけてください。

この問題を克服する方法を教えてください。

googlemapimageusinghtml2canvas

Question

最も参考になるコメント

オプションでuseCORS: trueを渡すと、問題が修正されました。 また、 allowTaint: false 。 これは、すべてのタイルが表示された後、関数を実行した場合、あなたが聞くことができる役立つだろうtilesloadedと実行html2canvasの後にそれが起こるの。

全てのコメント7件

corsヘッダーが提供されていない限り、異なるオリジンの下にある画像(この場合はGoogleマップタイル)をレンダリングすることはできません。 これを克服する1つの方法は、イメージのプロキシを使用することです。

私はphpプロキシサーバーで試しましたが、エラーに直面しています:「キャッチされていません
SecurityError:「HTMLCanvasElement」で「toDataURL」を実行できませんでした:
汚れたキャンバスはエクスポートできません。」

私はこのプロキシサーバーを試しました:
https://github.com/brcontainer/html2canvas-php-proxy
上記のプロキシサーバーで、私はグーグルマップの方向を使用しました:
https://developers.google.com/maps/documentation/javascript/examples/directions-simple

2014年12月13日土曜日午後11時11分、Niklas von Hertzen <
[email protected]>書き込み:

下にある画像(この場合はGoogleマップのタイル)をレンダリングすることはできません
corsヘッダーが提供されていない限り、異なるオリジン
https://developer.mozilla.org/en-US/docs/Web/HTTP/Access_control_CORS。
これを克服する1つの方法は、イメージのプロキシを使用することです。


このメールに直接返信するか、GitHubで表示してください
https://github.com/niklasvh/html2canvas/issues/485#issuecomment -66884354

_HARDIK SHAH_

私は同じ問題に直面しています。 これに対する解決策を見つけましたか? html2canvasを使用してグーグルマップのスクリーンショットを取得したい。 返信に感謝します。

バンプ。 更新はありますか?

オプションでuseCORS: trueを渡すと、問題が修正されました。 また、 allowTaint: false 。 これは、すべてのタイルが表示された後、関数を実行した場合、あなたが聞くことができる役立つだろうtilesloadedと実行html2canvasの後にそれが起こるの。

私は同じ問題に直面しています。 マップオプションでuseCORS:trueとallowTaint:falseを使用してみましたが、役に立ちませんでした。 ページが読み込まれた後にのみスクリーンショットを取得しようとしています。 私は何かが足りませんか?

Googleマップのスクリーンショットを撮るときにも問題が発生し、次のエラーが発生します。
ERROR Error: Uncaught (in promise): InvalidStateError: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The image argument is a canvas element with a width or height of 0. Error: Failed to execute 'drawImage' on 'CanvasRenderingContext2D': The image argument is a canvas element with a width or height of 0. at CanvasRenderer.<anonymous> (html2canvas.js:6289) at step (html2canvas.js:83) at Object.next (html2canvas.js:64) at fulfilled (html2canvas.js:54) at ZoneDelegate.invoke (zone-evergreen.js:365) at Object.onInvoke (core.js:39698) at ZoneDelegate.invoke (zone-evergreen.js:364) at Zone.run (zone-evergreen.js:124) at zone-evergreen.js:851 at ZoneDelegate.invokeTask (zone-evergreen.js:400) at resolvePromise (zone-evergreen.js:793) at resolvePromise (zone-evergreen.js:752) at zone-evergreen.js:854 at ZoneDelegate.invokeTask (zone-evergreen.js:400) at Object.onInvokeTask (core.js:39679) at ZoneDelegate.invokeTask (zone-evergreen.js:399) at Zone.runTask (zone-evergreen.js:168) at drainMicroTaskQueue (zone-evergreen.js:570) at invokeTask (zone-evergreen.js:485) at ZoneTask.invoke (zone-evergreen.js:470)

どうか、これは非常に重要です。

このページは役に立ちましたか?
0 / 5 - 0 評価