Google Maps APIを使用して、APIで生成されたヒートマップビジュアライゼーションにプロットする一連の座標データがあります。データは毎日変化します。ヒートマップをキャプチャし、PNGまたはJPG画像としてPHP内からプログラムで保存して、特定の日のマップを再生成せずに呼び出すことができます。マップをシーケンス化して、特定の期間にアニメーション化された変更を表示することができます。また、ヒートマップを含むPDFレポートをエクスポートできる必要がありますが、これは明らかに動的なWebページフレームでは機能しません。
誰か知っている:
googleが生成したヒートマップを静的なPNGまたはJPGファイルに保存する方法の例。手動でスクリーンショットを撮り、それをマップの境界にトリミングする以外にこのソリューションは、多くの異なるホスティング構成を持つ多くのユーザーに展開されるため、GUIなしの共有ホスティング環境で動作する必要があります。大半は熟練したLinuxの専門家やVPSの実行ではありません。または
座標をマップにプロットし、これからヒートマップなどの視覚化を生成する代替ツールの開発。これは、PHP内からPNGまたはJPGファイルに保存でき、自由に利用可能なPHPクラスまたはデフォルトでインストールされたPHPモジュール? (誰かがツールを念頭に置いている場合、これは私の優先ルートです)
私は同様の要求された機能を持つプロジェクトに取り組んでいます。いくつかのデータと、さらにいくつかのマップ(ヒース、クラスター、マーカー)を含める必要があるレポートを作成する必要があります。現時点では、html2canvasを使用してクライアント側で実行していますが、あなたと同じように、サーバー側でも実行したいと思います。
google.maps.event.addListener(DivMap, 'tilesloaded', function(){
setTimeout(function(){ //Trying to ensure full map render
Map2Image("DivMap","store_mapImage.php","png");
},1000);
});
そして、この機能
function Map2Image(MapDiv,phpup,format){
var transform=$(".gm-style>div:first>div").css("transform")
var comp=transform.split(",") //split up the transform matrix
var mapleft=parseFloat(comp[4]) //get left value
var maptop=parseFloat(comp[5]) //get top value
$(".gm-style>div:first>div").css({ //get the map container. not sure if stable
"transform":"none",
"left":mapleft,
"top":maptop,
})
}
html2canvas(document.getElementById(MapDiv),{
useCORS: true,
onrendered: function(canvas){
$.post(phpup,{image:canvas.toDataURL("image/"+format)});
$(".gm-style>div:first>div").css({
left:0,
top:0,
"transform":transform
});
}
});
}
この関数は this answerに基づいています。
注:非常に古い投稿(2014年から)を知っていますが、誰かに役立つと思うので、これを投稿しています。さらに良いことに、誰かが私たちに最高の解決策を与えることができます。
手動ではなくプログラムでスクリーンショットを撮ることができます。これは、チャートとグラフのサイトで行います。グラフはJavaScriptを使用してクライアント側で生成されますが、それらから作成されたサムネイル画像が必要です。
PHPの代わりにJavaを使用していますが、似ているはずです。