そのため、Google マップ (v3 API) を画像として保存する最も効率的な方法を見つけようとしています。最初に、snapshopcontrol.js を使用してみましたが、これはうまく機能しますが、150 を超えるマーカーがあるマップがいくつかあるため、URL の制限を超えています。
次に、マップの画像を作成する html2canvas で次のコードを試しましたが、html2canvas がそれをレンダリングするとすぐに、マップの位置がシフトし、マーカーが lat 0 lng 0 のように見えるものの上に移動します。
var element = $('#mapDiv');
html2canvas(element, {
useCORS: true,
onrendered: function(canvas) {
var dataUrl= canvas.toDataURL("image/png");
document.write('<img src="'+dataUrl+'" />');
}
});
地図がずれず、正しい位置にとどまっていれば完璧です。なぜこれが起こっているのか、誰かが光を当てることができますか?
html2canvas適用前のスクリーンショット
html2canvas 適用後のスクリーンショット
UPDATE 私のJSコンソールでは、それは言う
「XSS オーディターは、"http://...." のスクリプトの実行を拒否しました。そのソース コードが要求内に見つかったためです。サーバーが 'X-XSS-Protection' も 'Content. -Security-Policy のヘッダーです。」
「クロスオリジン リソース共有ポリシーによって、クロスオリジン イメージの読み込みが拒否されました。」"data:image/png;base64,iV......"